summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMyoungJune Park <mj2004.park@samsung.com>2017-03-27 13:37:59 +0900
committerMyoungJune Park <mj2004.park@samsung.com>2017-06-12 16:15:18 +0900
commit98d02ddb1a4b4bf4b0879fb189707543d06bc6bf (patch)
tree05be6983bb828d98b320899e31b09f3794ec1c57
parent41f717fb0857f466c34797859cc0c5525daa4e54 (diff)
downloadfactory-reset-98d02ddb1a4b4bf4b0879fb189707543d06bc6bf.tar.gz
factory-reset-98d02ddb1a4b4bf4b0879fb189707543d06bc6bf.tar.bz2
factory-reset-98d02ddb1a4b4bf4b0879fb189707543d06bc6bf.zip
init code
Change-Id: Ie6cb5cdbcabca325d23d3a230027d40f67c09644 Signed-off-by: MyoungJune Park <mj2004.park@samsung.com>
-rw-r--r--CMakeLists.txt105
-rw-r--r--LICENSE204
-rwxr-xr-xdata/factory-reset-util-small-display.edc193
-rwxr-xr-xdata/factory-reset-util.edc175
-rw-r--r--data/images/A01-1_icon_factoryreset.pngbin0 -> 24413 bytes
-rw-r--r--data/images/A01-1_progress_bg.pngbin0 -> 2654 bytes
-rw-r--r--data/images/A01-1_progress_bg_dim.pngbin0 -> 2557 bytes
-rw-r--r--data/images/A01-1_progress_pending_01.pngbin0 -> 2164 bytes
-rw-r--r--data/images/A01-1_progress_pending_01_dim.pngbin0 -> 2117 bytes
-rw-r--r--data/images/A01-1_progress_pending_02.pngbin0 -> 2113 bytes
-rw-r--r--data/images/A01-1_progress_pending_02_dim.pngbin0 -> 2074 bytes
-rw-r--r--factory-reset.manifest21
-rw-r--r--factory-reset.rule5
-rw-r--r--packaging/factory-reset-launch.service7
-rw-r--r--packaging/factory-reset.service12
-rwxr-xr-xpackaging/factory-reset.spec110
-rw-r--r--packaging/org.tizen.factory-reset.service5
-rw-r--r--po/CMakeLists.txt23
-rw-r--r--po/POTFILES.in2
-rw-r--r--po/ar.po22
-rw-r--r--po/as.po22
-rw-r--r--po/az.po22
-rw-r--r--po/bg.po22
-rw-r--r--po/bn.po22
-rw-r--r--po/bn_BD.po22
-rw-r--r--po/ca.po22
-rw-r--r--po/cs.po22
-rw-r--r--po/da.po22
-rw-r--r--po/de.po22
-rw-r--r--po/el_GR.po22
-rw-r--r--po/en.po22
-rw-r--r--po/en_PH.po22
-rw-r--r--po/en_US.po22
-rw-r--r--po/es_ES.po22
-rw-r--r--po/es_US.po22
-rw-r--r--po/et.po22
-rw-r--r--po/eu.po22
-rw-r--r--po/fa.po22
-rw-r--r--po/factory-reset.pot22
-rw-r--r--po/fi.po22
-rw-r--r--po/fr.po22
-rw-r--r--po/fr_CA.po22
-rw-r--r--po/ga.po22
-rw-r--r--po/gl.po22
-rw-r--r--po/gu.po22
-rw-r--r--po/he.po22
-rw-r--r--po/hi.po22
-rw-r--r--po/hr.po22
-rw-r--r--po/hu.po22
-rw-r--r--po/hy.po22
-rw-r--r--po/id.po22
-rw-r--r--po/is.po22
-rw-r--r--po/it_IT.po22
-rw-r--r--po/ja_JP.po22
-rw-r--r--po/ka.po22
-rw-r--r--po/kk.po22
-rw-r--r--po/km.po22
-rw-r--r--po/kn.po22
-rw-r--r--po/ko_KR.po22
-rw-r--r--po/ky_KG.po22
-rw-r--r--po/lo.po22
-rw-r--r--po/lt.po22
-rw-r--r--po/lv.po22
-rw-r--r--po/mk.po22
-rw-r--r--po/ml.po22
-rwxr-xr-xpo/mn_MN.po22
-rw-r--r--po/mr.po22
-rw-r--r--po/ms.po22
-rw-r--r--po/my.po22
-rw-r--r--po/nb.po22
-rw-r--r--po/ne.po22
-rw-r--r--po/nl.po22
-rw-r--r--po/or.po22
-rw-r--r--po/pa.po22
-rw-r--r--po/pl.po22
-rw-r--r--po/pt_BR.po22
-rw-r--r--po/pt_PT.po22
-rw-r--r--po/ro.po22
-rw-r--r--po/ru_RU.po22
-rwxr-xr-xpo/si.po22
-rw-r--r--po/sk.po22
-rw-r--r--po/sl.po22
-rw-r--r--po/sq.po22
-rw-r--r--po/sr.po22
-rw-r--r--po/sv.po22
-rw-r--r--po/ta.po22
-rw-r--r--po/te.po22
-rw-r--r--po/tg_TJ.po22
-rw-r--r--po/th.po22
-rw-r--r--po/tk_TM.po22
-rwxr-xr-xpo/tl.po22
-rw-r--r--po/tr_TR.po22
-rw-r--r--po/uk.po22
-rwxr-xr-xpo/update-po.sh81
-rw-r--r--po/ur.po22
-rw-r--r--po/uz.po22
-rw-r--r--po/vi.po22
-rw-r--r--po/zh_CN.po22
-rw-r--r--po/zh_HK.po22
-rw-r--r--po/zh_TW.po22
-rwxr-xr-xscript/build-backup-data.sh97
-rw-r--r--script/dump-frlog.sh9
-rwxr-xr-xscript/factoryreset-verify-result.sh36
-rw-r--r--script/factoryreset-verify.sh101
-rwxr-xr-xscript/run-factory-reset.sh299
-rwxr-xr-xsrc/ccerror.h14
-rwxr-xr-xsrc/factory-reset-util.c382
-rw-r--r--src/factory-reset-util.h52
-rw-r--r--src/factory-reset.c341
-rwxr-xr-xsrc/resetCCMode.c72
-rw-r--r--src/rstsmack.c148
111 files changed, 4254 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..ec56ef4
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,105 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(factory-reset C)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(EXEC_PREFIX "\${prefix}")
+SET(LIBDIR "\${prefix}/lib")
+SET(INCLUDEDIR "\${prefix}/include")
+SET(EDJDIR "\${prefix}/share/edje")
+SET(VERSION 0.1)
+
+SET(SRCS_RESET_CCMODE src/resetCCMode.c)
+SET(SRCS_RSTSMACK src/rstsmack.c)
+SET(SRCS_UTIL src/factory-reset-util.c)
+SET(SRCS src/factory-reset.c)
+SET(EDJ_SRCS ${CMAKE_SOURCE_DIR}/data/factory-reset-util.edc)
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
+
+#IF("$ENV{CFLAGS}" MATCHES "-DTELEPHONY_DISABLE")
+# MESSAGE("add -DTELEPHONY_DISABLE")
+#ELSE()
+# SET(PKG_MODULES ${PKG_MODULES}
+# tapi modem
+# )
+#ENDIF()
+
+#IF("$ENV{CFLAGS}" MATCHES "-DCSC_DISABLE")
+# MESSAGE("add -DCSC_DISABLE")
+#ELSE()
+# SET(PKG_MODULES ${PKG_MODULES}
+# csc-manager
+# )
+#ENDIF()
+
+IF("${DISPLAY_RESOLUTION}" STREQUAL "320x320")
+ MESSAGE("font size is 22")
+ ADD_DEFINITIONS("-DFACTORY_RESET_FONT_SIZE=22")
+ SET(EDJ_SRCS ${CMAKE_SOURCE_DIR}/data/factory-reset-util-small-display.edc)
+ELSEIF("${DISPLAY_RESOLUTION}" STREQUAL "360x480")
+ MESSAGE("font size is 24")
+ ADD_DEFINITIONS("-DFACTORY_RESET_FONT_SIZE=24")
+ SET(EDJ_SRCS ${CMAKE_SOURCE_DIR}/data/factory-reset-util-small-display.edc)
+ELSEIF("${DISPLAY_RESOLUTION}" STREQUAL "480x800")
+ MESSAGE("font size is 24")
+ ADD_DEFINITIONS("-DFACTORY_RESET_FONT_SIZE=24")
+ENDIF()
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED appcore-efl evas edje elementary
+ libsmack dbus-1 dbus-glib-1 ${PKG_MODULES} )
+
+FOREACH(flag ${pkgs_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" MATCHES "^arm.*")
+ ADD_DEFINITIONS("-DTARGET")
+ MESSAGE("add -DTARGET")
+ENDIF()
+
+ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"")
+ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
+ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
+ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
+ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
+
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
+
+ADD_EXECUTABLE(resetCCMode ${SRCS_RESET_CCMODE})
+ADD_EXECUTABLE(rstsmack ${SRCS_RSTSMACK})
+ADD_EXECUTABLE(factory-reset-util ${SRCS_UTIL})
+ADD_EXECUTABLE(factory-reset ${SRCS})
+TARGET_LINK_LIBRARIES(rstsmack ${pkgs_LDFLAGS})
+TARGET_LINK_LIBRARIES(factory-reset-util ${pkgs_LDFLAGS})
+TARGET_LINK_LIBRARIES(factory-reset ${pkgs_LDFLAGS})
+
+ADD_CUSTOM_TARGET(factory-reset-util.edj
+ COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/images
+ ${EDJ_SRCS} ${CMAKE_BINARY_DIR}/data/factory-reset-util.edj
+ DEPENDS ${EDJ_SRCS}
+)
+ADD_DEPENDENCIES(factory-reset-util factory-reset-util.edj)
+
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/script/run-factory-reset.sh DESTINATION bin)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/script/factoryreset-verify.sh DESTINATION bin)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/script/factoryreset-verify-result.sh DESTINATION bin)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/script/build-backup-data.sh DESTINATION bin)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/script/dump-frlog.sh DESTINATION /opt/etc/dump.d/module.d)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/factory-reset.rule DESTINATION /etc/smack/accesses2.d)
+INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/rstsmack DESTINATION bin)
+INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/factory-reset-util DESTINATION bin)
+INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/factory-reset DESTINATION bin)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/data/factory-reset-util.edj DESTINATION ${EDJDIR})
+
+IF("$ENV{CFLAGS}" MATCHES "-DTIZEN_CC")
+ INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/resetCCMode DESTINATION bin)
+ENDIF()
+
+#add sub directory
+ADD_SUBDIRECTORY(po)
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..3b1668e
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,204 @@
+Copyright (c) 2000 - 2017 Samsung Electronics Co., Ltd. All rights reserved.
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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.
+
diff --git a/data/factory-reset-util-small-display.edc b/data/factory-reset-util-small-display.edc
new file mode 100755
index 0000000..9145d2b
--- /dev/null
+++ b/data/factory-reset-util-small-display.edc
@@ -0,0 +1,193 @@
+#define IMAGE_DIR "./data/images/"
+#define ICON_FILE IMAGE_DIR"A01-1_samsung_gear_s_logo.png"
+
+collections {
+ group {
+ name: "main";
+ images {
+ image: ICON_FILE COMP;
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "top_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 10 10;
+ fixed: 0 0;
+ rel1.relative: 0.0 0.0;
+ rel1.to_y: "bg";
+ rel2.relative: 1.0 100/480;
+ rel2.to_y: "bg";
+ align: 0.5 0.0;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "left_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 5 0;
+ fixed: 1 0;
+ rel1.relative: 0.0 0.0;
+ rel1.to_x: "bg";
+ rel2.relative: 0.02 1.0;
+ rel2.to_y: "bg";
+ align: 0.0 0.5;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "right_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 5 0;
+ fixed: 1 0;
+ rel1.relative: 0.98 0.0;
+ rel1.to_x: "bg";
+ rel2.relative: 1.0 1.0;
+ align: 1.0 0.5;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "img_icon";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ max: 240 120;
+ min: 240 120;
+ fixed: 1 1;
+ rel1.relative: 1/3 1.0;
+ rel1.to_x: "bg";
+ rel1.to_y: "top_padding";
+ rel2.relative: 2/3 220/480;
+ image.normal: ICON_FILE;
+ align: 0.5 0.5;
+ }
+ }
+ part {
+ name: "mid_padding1";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 10 10;
+ fixed: 0 1;
+ rel1.relative: 0.0 1.0;
+ rel1.to_y: "img_icon";
+ rel2.relative: 1.0 150/320;
+ align: 0.5 0.0;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "txt_mesg_box";
+ type: RECT;
+ scale: 0;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 160 90;
+ fixed: 1 1;
+ rel1.relative: 1.0 1.0;
+ rel1.to_x: "left_padding";
+ rel1.to_y: "mid_padding1";
+ rel2.relative: 0.0 260/320;
+ rel2.to_x: "right_padding";
+ align: 0.5 0.0;
+ color: 0 0 0 255;
+ }
+ }
+
+ part {
+ name: "txt_mesg";
+ type: SWALLOW;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 160 30;
+ fixed: 1 1;
+ rel1.relative: 1.0 0.5;
+ rel1.to_x: "left_padding";
+ rel1.to_y: "txt_mesg_box";
+ rel2.relative: 0.0 0.5;
+ rel2.to_x: "right_padding";
+ rel2.to_y: "txt_mesg_box";
+ align: 0.5 0.45;
+ }
+ }
+ part {
+ name: "mid_padding2";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 10 10;
+ fixed: 0 1;
+ rel1.relative: 1.0 1.0;
+ rel1.to_x: "left_padding";
+ rel1.to_y: "txt_mesg_box";
+ rel2.relative: 0.0 268/320;
+ rel2.to_x: "right_padding";
+ align: 0.5 0.0;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "pending_pbar";
+ type: SWALLOW;
+ scale: 0;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 0 16;
+ fixed: 0 1;
+ rel1.relative: 3.0 1.0;
+ rel1.to_x: "left_padding";
+ rel1.to_y: "mid_padding2";
+ rel2.relative: -2.0 288/320;
+ rel2.to_x: "right_padding";
+ align: 0.5 0.0;
+ }
+ }
+
+ part {
+ name: "bottom_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 10 10;
+ fixed: 1 1;
+ rel1.relative: 1.0 1.0;
+ rel1.to_x: "left_padding";
+ rel1.to_y: "bg";
+ rel2.relative: 1.0 1.0;
+ align: 0.5 1.0;
+ color: 0 0 0 255;
+ }
+ }
+
+ }
+
+ }
+}
diff --git a/data/factory-reset-util.edc b/data/factory-reset-util.edc
new file mode 100755
index 0000000..3c0158f
--- /dev/null
+++ b/data/factory-reset-util.edc
@@ -0,0 +1,175 @@
+#define IMAGE_DIR "./data/images/"
+#define ICON_FILE IMAGE_DIR"A01-1_icon_factoryreset.png"
+
+collections {
+ group {
+ name: "main";
+ images {
+ image: ICON_FILE COMP;
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "top_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 10 10;
+ fixed: 0 0;
+ rel1.relative: 0.0 0.0;
+ rel1.to_y: "bg";
+ rel2.relative: 1.0 290/1280;
+ rel2.to_y: "bg";
+ align: 0.5 0.0;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "left_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 10 0;
+ fixed: 1 0;
+ rel1.relative: 0.0 0.0;
+ rel1.to_x: "bg";
+ rel2.relative: 0.05 1.0;
+ rel2.to_y: "bg";
+ align: 0.0 0.5;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "right_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 10 0;
+ fixed: 1 0;
+ rel1.relative: 0.95 0.0;
+ rel1.to_x: "bg";
+ rel2.relative: 1.0 1.0;
+ align: 1.0 0.5;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "img_icon";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 120 120;
+ fixed: 1 1;
+ rel1.relative: 1/3 1.0;
+ rel1.to_x: "bg";
+ rel1.to_y: "top_padding";
+ rel2.relative: 2/3 530/1280;
+ image.normal: ICON_FILE;
+ align: 0.5 0;
+ }
+ }
+ part {
+ name: "mid_padding1";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 10 10;
+ fixed: 0 1;
+ rel1.relative: 0.0 1.0;
+ rel1.to_y: "img_icon";
+ rel2.relative: 1.0 633/1280;
+ align: 0.5 0.0;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "pending_pbar";
+ type: SWALLOW;
+ scale: 0;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 0 16;
+ fixed: 0 1;
+ rel1 {
+ relative: 1.0 1.0;
+ to_x: "left_padding";
+ to_y: "mid_padding1";
+ }
+ rel2 {
+ relative: 0.0 665/1280;
+ to_x: "right_padding";
+ }
+ align: 0.5 0.0;
+ }
+ }
+ part {
+ name: "mid_padding2";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 10 10;
+ fixed: 0 1;
+ rel1.relative: 1.0 1.0;
+ rel1.to_x: "left_padding";
+ rel1.to_y: "pending_pbar";
+ rel2.relative: 0.0 699/1280;
+ rel2.to_x: "right_padding";
+ align: 0.5 0.0;
+ color: 0 0 0 255;
+ }
+ }
+ part {
+ name: "txt_mesg";
+ type: SWALLOW;
+ scale: 0;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: 20 20;
+ max: 720 300;
+ fixed: 1 1;
+ rel1.relative: 1.0 1.0;
+ rel1.to_x: "left_padding";
+ rel1.to_y: "mid_padding2";
+ rel2.relative: 0.0 799/1280;
+ rel2.to_x: "right_padding";
+ align: 0.5 0.0;
+ }
+ }
+ part {
+ name: "bottom_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 1.0 1.0;
+ rel1.to_x: "left_padding";
+ rel1.to_y: "txt_mesg";
+ rel2.relative: 1.0 1.0;
+ align: 0.0 0.0;
+ color: 0 0 0 255;
+ }
+ }
+
+ }
+
+ }
+}
diff --git a/data/images/A01-1_icon_factoryreset.png b/data/images/A01-1_icon_factoryreset.png
new file mode 100644
index 0000000..9274d6b
--- /dev/null
+++ b/data/images/A01-1_icon_factoryreset.png
Binary files differ
diff --git a/data/images/A01-1_progress_bg.png b/data/images/A01-1_progress_bg.png
new file mode 100644
index 0000000..d247212
--- /dev/null
+++ b/data/images/A01-1_progress_bg.png
Binary files differ
diff --git a/data/images/A01-1_progress_bg_dim.png b/data/images/A01-1_progress_bg_dim.png
new file mode 100644
index 0000000..f1b1ab2
--- /dev/null
+++ b/data/images/A01-1_progress_bg_dim.png
Binary files differ
diff --git a/data/images/A01-1_progress_pending_01.png b/data/images/A01-1_progress_pending_01.png
new file mode 100644
index 0000000..b1f5189
--- /dev/null
+++ b/data/images/A01-1_progress_pending_01.png
Binary files differ
diff --git a/data/images/A01-1_progress_pending_01_dim.png b/data/images/A01-1_progress_pending_01_dim.png
new file mode 100644
index 0000000..664c638
--- /dev/null
+++ b/data/images/A01-1_progress_pending_01_dim.png
Binary files differ
diff --git a/data/images/A01-1_progress_pending_02.png b/data/images/A01-1_progress_pending_02.png
new file mode 100644
index 0000000..186fdc8
--- /dev/null
+++ b/data/images/A01-1_progress_pending_02.png
Binary files differ
diff --git a/data/images/A01-1_progress_pending_02_dim.png b/data/images/A01-1_progress_pending_02_dim.png
new file mode 100644
index 0000000..c86c590
--- /dev/null
+++ b/data/images/A01-1_progress_pending_02_dim.png
Binary files differ
diff --git a/factory-reset.manifest b/factory-reset.manifest
new file mode 100644
index 0000000..50e0dcd
--- /dev/null
+++ b/factory-reset.manifest
@@ -0,0 +1,21 @@
+<manifest>
+ <define>
+ <domain name="factory-reset"/>
+ </define>
+
+ <assign>
+ <filesystem path="/opt/etc/dump.d/module.d/dump-frlog.sh" label="_" exec_label="none" />
+ <filesystem path="/usr/share/dbus-1/services/org.tizen.factory-reset.service" label="_" exec_label="none" />
+ <dbus name="org.tizen.factoryreset" own="factory-reset" bus="system">
+ <node name="/org/tizen/factoryreset">
+ <interface name="org.tizen.factoryreset.start">
+ <annotation name="com.tizen.smack" value="factory-reset" />
+ </interface>
+ </node>
+ </dbus>
+ </assign>
+
+ <request>
+ <domain name="factory-reset"/>
+ </request>
+</manifest>
diff --git a/factory-reset.rule b/factory-reset.rule
new file mode 100644
index 0000000..df4604a
--- /dev/null
+++ b/factory-reset.rule
@@ -0,0 +1,5 @@
+factory-reset telephony_framework::api_manager r
+factory-reset telephony_framework::api_modem x
+factory-reset telephony_framework::api_private rwx
+factory-reset security-server::api-privilege-by-pid w
+factory-reset e17::notification rw
diff --git a/packaging/factory-reset-launch.service b/packaging/factory-reset-launch.service
new file mode 100644
index 0000000..664a931
--- /dev/null
+++ b/packaging/factory-reset-launch.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=launching factory reset by dbus
+
+[Service]
+Type=dbus
+BusName=org.tizen.factoryreset
+ExecStart=/usr/bin/factory-reset
diff --git a/packaging/factory-reset.service b/packaging/factory-reset.service
new file mode 100644
index 0000000..7c4d371
--- /dev/null
+++ b/packaging/factory-reset.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=factory reset on booting
+Before=tizen-boot.target
+
+ConditionPathExists=|/opt/.factoryreset
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/factory-reset
+
+[Install]
+WantedBy=multi-user.target
diff --git a/packaging/factory-reset.spec b/packaging/factory-reset.spec
new file mode 100755
index 0000000..44979f1
--- /dev/null
+++ b/packaging/factory-reset.spec
@@ -0,0 +1,110 @@
+Name: factory-reset
+Summary: factory-reset scripts and uitls
+Version: 0.19.6
+Release: 2
+Group: Applications/Core Applications
+License: po/ms.po:3
+Source0: %{name}-%{version}.tar.gz
+Source1: factory-reset.service
+Source2: factory-reset-launch.service
+Source3: org.tizen.factory-reset.service
+ExclusiveArch: %{arm}
+BuildRequires: cmake
+BuildRequires: gettext-tools
+BuildRequires: edje-bin
+BuildRequires: embryo-bin
+BuildRequires: pkgconfig(appcore-efl)
+BuildRequires: pkgconfig(elementary)
+#BuildRequires: pkgconfig(ecore-x)
+#BuildRequires: pkgconfig(utilX)
+BuildRequires: pkgconfig(evas)
+BuildRequires: pkgconfig(edje)
+BuildRequires: pkgconfig(libsmack)
+BuildRequires: pkgconfig(dbus-1)
+BuildRequires: pkgconfig(dbus-glib-1)
+
+Requires: /bin/tar
+Requires: unzip >= 6.0
+Requires: /bin/ps
+Requires: /bin/grep
+Requires: /bin/sleep
+Requires: /bin/mount
+Requires: /bin/umount
+Requires: /usr/bin/md5sum
+Requires: /usr/bin/expr
+Requires: /usr/bin/tr
+Requires: /usr/bin/awk
+
+%description
+Factory-reset is for returning the phone to the initial state. This makes the
+data of the phone to the default state and (if required) writes default
+preconfiguration
+It would be not only called by testers after many kind of verification tests
+but it also be called by Manufacture Steps for all products.
+
+%prep
+%setup -q
+
+%build
+%if 0%{?sec_product_feature_telephony_disable}
+export CFLAGS+=" -DTELEPHONY_DISABLE"
+%endif
+
+%if 0%{?sec_product_feature_csc_disable}
+export CFLAGS+=" -DCSC_DISABLE"
+%endif
+
+%if 0%{?sec_build_binary_debug_enable}
+export CFLAGS+=" -DDEBUG_BINARY"
+%endif
+
+%if 0%{?sec_product_feature_security_mdfpp_enable}
+export CFLAGS+=" -DTIZEN_CC"
+%endif
+
+cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+-DDISPLAY_RESOLUTION=%{sec_product_feature_display_resolution}
+
+make %{?jobs:-j%jobs}
+
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/
+install -m 0644 %SOURCE1 %{buildroot}%{_libdir}/systemd/system/factory-reset.service
+install -m 0644 %SOURCE2 %{buildroot}%{_libdir}/systemd/system/factory-reset-launch.service
+ln -s ../factory-reset.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/factory-reset.service
+mkdir -p %{buildroot}%{_datadir}/dbus-1/system-services
+#install -m 0644 %SOURCE3 %{buildroot}%{_datadir}/dbus-1/services/org.tizen.factory-reset.service
+install -m 0644 %SOURCE3 %{buildroot}%{_datadir}/dbus-1/system-services/org.tizen.factory-reset.service
+
+%post
+
+%postun
+
+
+%files
+%{_libdir}/systemd/system/factory-reset.service
+%{_libdir}/systemd/system/factory-reset-launch.service
+%{_libdir}/systemd/system/multi-user.target.wants/factory-reset.service
+%license LICENSE
+/etc/smack/accesses2.d/%{name}.rule
+%attr(700,root,root) %{_bindir}/*.sh
+%attr(755,root,root) %{_bindir}/rstsmack
+%attr(700,root,root) %{_bindir}/factory-reset-util
+%attr(744,root,root) %{_bindir}/factory-reset
+%{_datadir}/edje/factory-reset-util.edj
+%{_datadir}/locale/*/*/*.mo
+#%{_datadir}/dbus-1/services/org.tizen.factory-reset.service
+%{_datadir}/dbus-1/system-services/org.tizen.factory-reset.service
+%manifest factory-reset.manifest
+%attr(110,root,root) /opt/etc/dump.d/module.d/dump-frlog.sh
+
+%if 0%{?sec_product_feature_security_mdfpp_enable}
+%attr(700,root,root) %{_bindir}/resetCCMode
+%endif
+
+
+
diff --git a/packaging/org.tizen.factory-reset.service b/packaging/org.tizen.factory-reset.service
new file mode 100644
index 0000000..7feaa92
--- /dev/null
+++ b/packaging/org.tizen.factory-reset.service
@@ -0,0 +1,5 @@
+[D-BUS Service]
+Name=org.tizen.factoryreset
+Exec=/bin/false
+SystemdService=factory-reset-launch.service
+User=root
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
new file mode 100644
index 0000000..016c26b
--- /dev/null
+++ b/po/CMakeLists.txt
@@ -0,0 +1,23 @@
+# for i18n
+
+SET(POFILES ar as az bg bn bn_BD ca cs da de el_GR en_PH en en_US es_ES es_US et eu fa fi fr_CA fr ga gl gu he hi hr hu hy id is it_IT ja_JP ka kk km kn ko_KR ky_KG lo lt lv mk ml mn_MN mr ms my nb ne nl or pa pl pt_BR pt_PT ro ru_RU si sk sl sq sr sv ta te tg_TJ th tk_TM tl tr_TR uk ur uz vi zh_CN zh_HK zh_TW)
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+ SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile}.po)
+ 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 share/locale/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+ SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644
index 0000000..fd2736b
--- /dev/null
+++ b/po/POTFILES.in
@@ -0,0 +1,2 @@
+# List of source files containing translatable strings.
+factory-reset-util.c
diff --git a/po/ar.po b/po/ar.po
new file mode 100644
index 0000000..54ce9cd
--- /dev/null
+++ b/po/ar.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "جار تنفيذ إعادة ضبط بيانات المصنع‬. الرجاء الانتظار..."
diff --git a/po/as.po b/po/as.po
new file mode 100644
index 0000000..2b0e7d6
--- /dev/null
+++ b/po/as.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "ফেক্টৰী ডাটা পুনঃছেট সম্পন্ন কৰি আছে। অনুগ্ৰহ কৰি অপেক্ষা কৰক..."
diff --git a/po/az.po b/po/az.po
new file mode 100644
index 0000000..4c5c1fb
--- /dev/null
+++ b/po/az.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Zavod məlumatlarının bərpası aparılır. Lütfən gözləyin..."
diff --git a/po/bg.po b/po/bg.po
new file mode 100644
index 0000000..b85f33a
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Извършва се нулиране с фабричните данни. Моля, изчакайте..."
diff --git a/po/bn.po b/po/bn.po
new file mode 100644
index 0000000..78fe170
--- /dev/null
+++ b/po/bn.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "ফ্যাক্টরি তথ্য পুনরায় সেট করা হচ্ছে৷ দয়া করে অপেক্ষা করুন..."
diff --git a/po/bn_BD.po b/po/bn_BD.po
new file mode 100644
index 0000000..7fc6ab0
--- /dev/null
+++ b/po/bn_BD.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "ফ্যাক্টরি তথ্য পুনঃনির্ধারণ করা হচ্ছে৷ অনুগ্রহপূর্বক অপেক্ষা করুন..."
diff --git a/po/ca.po b/po/ca.po
new file mode 100644
index 0000000..a69a8a1
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "S'estan restablint les dades de fàbrica. Esperi..."
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 0000000..f974df7
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Obnovování výchozích nastavení.<br>Počkejte prosím..."
diff --git a/po/da.po b/po/da.po
new file mode 100644
index 0000000..48973b0
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Udfører nulstilling til fabriksstandard. Vent ..."
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..f4b8674
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Auf Werkseinstellungen zurücksetzen. Bitte warten..."
diff --git a/po/el_GR.po b/po/el_GR.po
new file mode 100644
index 0000000..7c23d94
--- /dev/null
+++ b/po/el_GR.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Γίνεται επαναφορά των εργοστασιακών δεδομένων. Περιμένετε..."
diff --git a/po/en.po b/po/en.po
new file mode 100644
index 0000000..dd91ae4
--- /dev/null
+++ b/po/en.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Performing factory data reset.<br>Please wait..."
diff --git a/po/en_PH.po b/po/en_PH.po
new file mode 100644
index 0000000..dd91ae4
--- /dev/null
+++ b/po/en_PH.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Performing factory data reset.<br>Please wait..."
diff --git a/po/en_US.po b/po/en_US.po
new file mode 100644
index 0000000..dd91ae4
--- /dev/null
+++ b/po/en_US.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Performing factory data reset.<br>Please wait..."
diff --git a/po/es_ES.po b/po/es_ES.po
new file mode 100644
index 0000000..5b148e9
--- /dev/null
+++ b/po/es_ES.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Restableciendo datos de fábrica.<br>Espere..."
diff --git a/po/es_US.po b/po/es_US.po
new file mode 100644
index 0000000..741c0c9
--- /dev/null
+++ b/po/es_US.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Realizando restablecimiento de datos de fabrica. Espere..."
diff --git a/po/et.po b/po/et.po
new file mode 100644
index 0000000..0d3163d
--- /dev/null
+++ b/po/et.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Tehaseandmete lähtestamine.<br>Palun oodake..."
diff --git a/po/eu.po b/po/eu.po
new file mode 100644
index 0000000..0053ba0
--- /dev/null
+++ b/po/eu.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Fabrikako datu berrezarpena egiten. Itxaron mesedez..."
diff --git a/po/fa.po b/po/fa.po
new file mode 100644
index 0000000..16a9501
--- /dev/null
+++ b/po/fa.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "در حال بازنشانی داده های کارخانه. لطفاً صبر کنید..."
diff --git a/po/factory-reset.pot b/po/factory-reset.pot
new file mode 100644
index 0000000..175a98c
--- /dev/null
+++ b/po/factory-reset.pot
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr ""
diff --git a/po/fi.po b/po/fi.po
new file mode 100644
index 0000000..6460ca6
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Alkuperäisiä tietoja palautetaan. Odota..."
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 0000000..0252a95
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Réinitialisation des données par défaut. Veuillez patienter..."
diff --git a/po/fr_CA.po b/po/fr_CA.po
new file mode 100644
index 0000000..0252a95
--- /dev/null
+++ b/po/fr_CA.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Réinitialisation des données par défaut. Veuillez patienter..."
diff --git a/po/ga.po b/po/ga.po
new file mode 100644
index 0000000..898c3bb
--- /dev/null
+++ b/po/ga.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Athshocrú sonraí monarchan á dhéanamh. Fan go fóill..."
diff --git a/po/gl.po b/po/gl.po
new file mode 100644
index 0000000..d36ba7a
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Realizando o restablecemento dos datos de fábrica. Agarda..."
diff --git a/po/gu.po b/po/gu.po
new file mode 100644
index 0000000..6fc67db
--- /dev/null
+++ b/po/gu.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "ફેકટરી ડેટાને ફરી ગોઠવી રહ્યું છે. કૃપયા પ્રતીક્ષા કરો..."
diff --git a/po/he.po b/po/he.po
new file mode 100644
index 0000000..7c8c320
--- /dev/null
+++ b/po/he.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "מבצע איפוס לנתוני היצרן. נא המתן..."
diff --git a/po/hi.po b/po/hi.po
new file mode 100644
index 0000000..4583fce
--- /dev/null
+++ b/po/hi.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "फैक्टरी डाटा रीसेट निष्पादित कर रहा है। कृपया प्रतीक्षा करें..."
diff --git a/po/hr.po b/po/hr.po
new file mode 100644
index 0000000..43d1892
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Vraćanje tvorničkih postavki.<br>Pričekajte..."
diff --git a/po/hu.po b/po/hu.po
new file mode 100644
index 0000000..aa006df
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Gyári adatok visszaállítása.<br>Kis türelmet..."
diff --git a/po/hy.po b/po/hy.po
new file mode 100644
index 0000000..6658f81
--- /dev/null
+++ b/po/hy.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Կատարվում է գործարանային տվյալների հետադարձում: Խնդրում ենք սպասել..."
diff --git a/po/id.po b/po/id.po
new file mode 100644
index 0000000..0602bb1
--- /dev/null
+++ b/po/id.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Melakukan reset data pabrik. Harap tunggu..."
diff --git a/po/is.po b/po/is.po
new file mode 100644
index 0000000..bab526e
--- /dev/null
+++ b/po/is.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Framkvæmi gagnafrumstillingu.<br>Augnablik..."
diff --git a/po/it_IT.po b/po/it_IT.po
new file mode 100644
index 0000000..910bc98
--- /dev/null
+++ b/po/it_IT.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Esecuzione del ripristino dati di fabbrica in corso. Attendere..."
diff --git a/po/ja_JP.po b/po/ja_JP.po
new file mode 100644
index 0000000..ddd096a
--- /dev/null
+++ b/po/ja_JP.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "工場出荷状態に初期化中です。<br>しばらくお待ちください。"
diff --git a/po/ka.po b/po/ka.po
new file mode 100644
index 0000000..2dff77c
--- /dev/null
+++ b/po/ka.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "სრულდება ქარხნული მონაცემების დაბრუნება. გთხოვთ, დაელოდოთ..."
diff --git a/po/kk.po b/po/kk.po
new file mode 100644
index 0000000..937f977
--- /dev/null
+++ b/po/kk.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Зауыттық деректер қалпына келтірілуде. Күте тұрыңыз..."
diff --git a/po/km.po b/po/km.po
new file mode 100644
index 0000000..cc13c9b
--- /dev/null
+++ b/po/km.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "កំពុង​ធ្វើ​ការកំណត់​ទិន្នន័យ​ពី​រោងចក្រ​ឡើង​វិញ។ សូម​រង់ចាំ..."
diff --git a/po/kn.po b/po/kn.po
new file mode 100644
index 0000000..86854e9
--- /dev/null
+++ b/po/kn.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "ಫ್ಯಾಕ್ಟರಿ ದತ್ತಾಂಶ ಮರುನಿಯೋಜನೆ ನಡೆಸುತ್ತಿದೆ. ದಯವಿಟ್ಟು ನಿರೀಕ್ಷಿಸಿ..."
diff --git a/po/ko_KR.po b/po/ko_KR.po
new file mode 100644
index 0000000..5cc742f
--- /dev/null
+++ b/po/ko_KR.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "[디바이스 전체 초기화] 실행 중입니다.<br>잠시 기다리세요..."
diff --git a/po/ky_KG.po b/po/ky_KG.po
new file mode 100644
index 0000000..dd91ae4
--- /dev/null
+++ b/po/ky_KG.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Performing factory data reset.<br>Please wait..."
diff --git a/po/lo.po b/po/lo.po
new file mode 100644
index 0000000..3c4f007
--- /dev/null
+++ b/po/lo.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "ດໍາເນີນການຕັ້ງຄ່າຂໍ້ມູນໂຮງງານໃໝ່. ກະລຸນາ ລໍຖ້າ..."
diff --git a/po/lt.po b/po/lt.po
new file mode 100644
index 0000000..1024f1b
--- /dev/null
+++ b/po/lt.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Gamykliniai duomenys nustatomi iš naujo. Palaukite..."
diff --git a/po/lv.po b/po/lv.po
new file mode 100644
index 0000000..4d85217
--- /dev/null
+++ b/po/lv.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Veic sākotnējo datu atiestati.<br>Lūdzu, uzgaidiet..."
diff --git a/po/mk.po b/po/mk.po
new file mode 100644
index 0000000..c5efd4f
--- /dev/null
+++ b/po/mk.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Се врши фабричко ресетирање на податоците. Почекајте..."
diff --git a/po/ml.po b/po/ml.po
new file mode 100644
index 0000000..a860909
--- /dev/null
+++ b/po/ml.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "ഫാക്ടറി ഡാറ്റാ പുനസജ്ജീകരണം നിര്‍വഹിക്കുക. ദയവായി കാത്തിരിക്കുക..."
diff --git a/po/mn_MN.po b/po/mn_MN.po
new file mode 100755
index 0000000..9a3eaa2
--- /dev/null
+++ b/po/mn_MN.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-05-13 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Үйлдвэрийн өгөгдөл дахин тохируулж байна. Хүлээнэ үү..."
diff --git a/po/mr.po b/po/mr.po
new file mode 100644
index 0000000..45790d8
--- /dev/null
+++ b/po/mr.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "फॅक्टरी डेटा पुन्हा मांडणी करत आहे. कृपया प्रतीक्षा करा..."
diff --git a/po/ms.po b/po/ms.po
new file mode 100644
index 0000000..7b9e26a
--- /dev/null
+++ b/po/ms.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Menjalankan tetap semula data kilang. Sila tunggu..."
diff --git a/po/my.po b/po/my.po
new file mode 100644
index 0000000..4a26ff2
--- /dev/null
+++ b/po/my.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "စက္ရံု ေဒတာ ျပန္ဆင္ျခင္း ေဆာင္ရြက္ျခင္း။ ေက်းဇူးျပဳ၍ ေစာင့္ပါ..."
diff --git a/po/nb.po b/po/nb.po
new file mode 100644
index 0000000..088e51f
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Tilbakestilling til fabrikkstandard pågår. Vent litt..."
diff --git a/po/ne.po b/po/ne.po
new file mode 100644
index 0000000..cd77a57
--- /dev/null
+++ b/po/ne.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "फ्याक्टोरी डाटा रिसेट कार्य हुँदैछ। कृपया पर्खनुहोस्..."
diff --git a/po/nl.po b/po/nl.po
new file mode 100644
index 0000000..6e0d111
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Fabrieksinstellingen worden gereset. Even geduld..."
diff --git a/po/or.po b/po/or.po
new file mode 100644
index 0000000..1201656
--- /dev/null
+++ b/po/or.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "ଫେକ୍ଟୋରୀ ଡାଟା ରିସେଟ୍ ସମ୍ପାଦନ କରୁଛି। ଦୟାକରି ଅପେକ୍ଷା କରନ୍ତୁ..."
diff --git a/po/pa.po b/po/pa.po
new file mode 100644
index 0000000..364de3d
--- /dev/null
+++ b/po/pa.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "ਫੈਕਟਰੀ ਡੈਟਾ ਰੀਸੈੱਟ ਹੋ ਰਿਹਾ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕ ਕਰੋ..."
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 0000000..99a1478
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Przywracanie ustawień fabrycznych. Czekaj..."
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644
index 0000000..86a5269
--- /dev/null
+++ b/po/pt_BR.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Realizando redefinição de dados de fábrica. Aguarde..."
diff --git a/po/pt_PT.po b/po/pt_PT.po
new file mode 100644
index 0000000..a33ee62
--- /dev/null
+++ b/po/pt_PT.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "A executar reposição de dados de fábrica. Aguarde por favor..."
diff --git a/po/ro.po b/po/ro.po
new file mode 100644
index 0000000..7bf256c
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Se execută resetarea la datele din fabrică. Aşteptaţi..."
diff --git a/po/ru_RU.po b/po/ru_RU.po
new file mode 100644
index 0000000..c6291a8
--- /dev/null
+++ b/po/ru_RU.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Выполнение сброса данных. Подождите..."
diff --git a/po/si.po b/po/si.po
new file mode 100755
index 0000000..9cb307d
--- /dev/null
+++ b/po/si.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "කර්මාන්ත දත්ත නැවත සැකසීම සිදු කරමින් පවතී. කරුණාකර රැඳී සිටින්න..."
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 0000000..7b8e1db
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Obnovuje sa nastavenie údajov od výrobcu. Počkajte, prosím..."
diff --git a/po/sl.po b/po/sl.po
new file mode 100644
index 0000000..d697b29
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Ponastavljanje na tovarniške podatke. Počakajte ..."
diff --git a/po/sq.po b/po/sq.po
new file mode 100644
index 0000000..571c096
--- /dev/null
+++ b/po/sq.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Duke kryer ricilësimin e të dhënave të fabrikës. Prit pak..."
diff --git a/po/sr.po b/po/sr.po
new file mode 100644
index 0000000..f715896
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Obavlja se fabričko resetovanje. Sačekaj..."
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..4b0553f
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Genomför återställning till fabriksdata. Vänta..."
diff --git a/po/ta.po b/po/ta.po
new file mode 100644
index 0000000..5c2d57c
--- /dev/null
+++ b/po/ta.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "ஃபேக்டரி தரவு ரீசெட் செய்கிறது. தயவுசெய்து காத்திருக்கவும்..."
diff --git a/po/te.po b/po/te.po
new file mode 100644
index 0000000..3217e56
--- /dev/null
+++ b/po/te.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "ఫ్యాక్టరీ డేటా రీసెట్‌ని అమలు చేస్తోంది. దయచేసి వేచి ఉండండి..."
diff --git a/po/tg_TJ.po b/po/tg_TJ.po
new file mode 100644
index 0000000..7d0d467
--- /dev/null
+++ b/po/tg_TJ.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Иҷрокунии танзими дубораи иттилооти аслӣ. Интизор шавед..."
diff --git a/po/th.po b/po/th.po
new file mode 100644
index 0000000..2f8cbad
--- /dev/null
+++ b/po/th.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "กำลังดำเนินการรีเซ็ทข้อมูลจากโรงงาน โปรดรอ..."
diff --git a/po/tk_TM.po b/po/tk_TM.po
new file mode 100644
index 0000000..acefe07
--- /dev/null
+++ b/po/tk_TM.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Asyl sazlamalara nol edilýär. Garaşyň..."
diff --git a/po/tl.po b/po/tl.po
new file mode 100755
index 0000000..993369f
--- /dev/null
+++ b/po/tl.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Nagsasagawa ng pag-reset ng factory data. Mangyaring maghintay..."
diff --git a/po/tr_TR.po b/po/tr_TR.po
new file mode 100644
index 0000000..cebd95e
--- /dev/null
+++ b/po/tr_TR.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Fabrika veri sıfırlaması yapılıyor. Lütfen bekleyin..."
diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 0000000..e618c9e
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Скидання даних до заводських значень. Зачекайте..."
diff --git a/po/update-po.sh b/po/update-po.sh
new file mode 100755
index 0000000..42c1f25
--- /dev/null
+++ b/po/update-po.sh
@@ -0,0 +1,81 @@
+#!/bin/sh
+#
+# Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved
+#
+# This file is part of the native-installer
+# Written by Jayoun Lee <airjany@samsung.com>, Sewook Park <sewook7.park@samsung.com>,
+# Jaeho Lee <jaeho81.lee@samsung.com>, Shobhit Srivastava <shobhit.s@samsung.com>
+#
+# PROPRIETARY/CONFIDENTIAL
+#
+# This software is the confidential and proprietary information of
+# SAMSUNG ELECTRONICS (Confidential Information).
+# You shall not disclose such Confidential Information and shall
+# use it only in accordance with the terms of the license agreement
+# you entered into with SAMSUNG ELECTRONICS. SAMSUNG make no
+# representations or warranties about the suitability
+# of the software, either express or implied, including but not
+# limited to the implied warranties of merchantability, fitness for a particular purpose, or non-
+# infringement. SAMSUNG shall not be liable for any damages suffered by licensee as
+# a result of using, modifying or distributing this software or its derivatives.
+#
+
+
+PACKAGE=factory-reset
+SRCROOT=../src
+POTFILES=POTFILES.in
+
+#ALL_LINGUAS="ar az bg ca cs da de_DE el_GR en_PH en en_US es_ES es_MX et eu fi fr_CA fr_FR ga gl hi hr hu hy is it_IT ja_JP ka kk ko_KR lt lv mk nb nl_NL pl pt_BR pt_PT ro ru_RU sk sl sr sv tr_TR uk uz zh_CN zh_HK zh_SG zh_TW"
+ALL_LINGUAS="as bn fa fil gu he id khmer kn lo ml mr ms my ne or pa sinhala sq ta te th ur vi"
+
+XGETTEXT=/usr/bin/xgettext
+MSGMERGE=/usr/bin/msgmerge
+
+echo -n "Make ${PACKAGE}.pot "
+if [ ! -e $POTFILES ] ; then
+ echo "$POTFILES not found"
+ exit 1
+fi
+
+$XGETTEXT --default-domain=${PACKAGE} --directory=${SRCROOT} \
+ --add-comments --keyword=_ --keyword=N_ --files-from=$POTFILES
+if [ $? -ne 0 ]; then
+ echo "xgettext error"
+ exit 1
+fi
+
+if [ ! -f ${PACKAGE}.po ]; then
+ echo "No such file: ${PACKAGE}.po"
+ exit 1
+fi
+
+rm -f ${PACKAGE}.pot && mv ${PACKAGE}.po ${PACKAGE}.pot
+echo "done"
+
+for LANG in $ALL_LINGUAS; do
+ echo "$LANG : "
+
+ if [ ! -e $LANG.po ] ; then
+ sed 's/CHARSET/UTF-8/g' ${PACKAGE}.pot > ${LANG}.po
+ echo "${LANG}.po created"
+ else
+ if $MSGMERGE ${LANG}.po ${PACKAGE}.pot -o ${LANG}.new.po ; then
+ if cmp ${LANG}.po ${LANG}.new.po > /dev/null 2>&1; then
+ rm -f ${LANG}.new.po
+ else
+ if mv -f ${LANG}.new.po ${LANG}.po; then
+ echo ""
+ else
+ echo "msgmerge for $LANG.po failed: cannot move $LANG.new.po to $LANG.po" 1>&2
+ rm -f ${LANG}.new.po
+ exit 1
+ fi
+ fi
+ else
+ echo "msgmerge for $LANG failed!"
+ rm -f ${LANG}.new.po
+ fi
+ fi
+ echo ""
+done
+
diff --git a/po/ur.po b/po/ur.po
new file mode 100644
index 0000000..e13f2e2
--- /dev/null
+++ b/po/ur.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "فیکٹری کوائف پھرسیٹ انجام دے رہا ہے۔ برائے مہربانی انتظار کریں..."
diff --git a/po/uz.po b/po/uz.po
new file mode 100644
index 0000000..2ecbf29
--- /dev/null
+++ b/po/uz.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Ishlab chiqaruvchi parametrlariga o‘tkazish. Iltimos, kuting..."
diff --git a/po/vi.po b/po/vi.po
new file mode 100644
index 0000000..cd8da17
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-10 11:16+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:41
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "Đang thực hiện khôi phục cài đặt gốc. Vui lòng chờ..."
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644
index 0000000..1c01cbf
--- /dev/null
+++ b/po/zh_CN.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "正在进行出厂数据重置。请稍候…"
diff --git a/po/zh_HK.po b/po/zh_HK.po
new file mode 100644
index 0000000..67b2afb
--- /dev/null
+++ b/po/zh_HK.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "正在執行重設為原廠設定。請稍候..."
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644
index 0000000..2817b46
--- /dev/null
+++ b/po/zh_TW.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-02-20 16:47+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: factory-reset-util.c:34
+msgid "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING"
+msgstr "正在執行原廠資料重設。請稍候..."
diff --git a/script/build-backup-data.sh b/script/build-backup-data.sh
new file mode 100755
index 0000000..bb8d58e
--- /dev/null
+++ b/script/build-backup-data.sh
@@ -0,0 +1,97 @@
+#!/bin/bash
+#
+# Copyright (c) 20014- 2017 Samsung Electronics Co., Ltd.
+#
+# Contact: MyoungJune Park <mj2004.park@samsung.com>
+# Created by Wonil Choi <wonil22.choi@samsung.com>
+#
+# 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.
+#
+
+
+
+## build backup data for factory reset
+
+
+[ $INSTALL_ROOT ] || INSTALL_ROOT="/"
+rdir=$INSTALL_ROOT/usr/system/RestoreDir
+optdir=$INSTALL_ROOT/opt
+CURDIR=`pwd`
+BACKUPLIST=`ls -1 $optdir`
+EXCLUDE_OPTION=
+# For removable preload app
+RESTORE_EXCEPTION_LIST=
+if [ -e $INSTALL_ROOT/usr/packages/restore_exception.list ]; then
+ xlist=$INSTALL_ROOT/usr/packages/restore_exception.list
+ RESTORE_EXCEPTION_LIST=`sed -e "s#^\/##g" $xlist`
+fi
+
+create_archive() {
+ echo "Create_Archive --------------------------------------------"
+ mkdir -p $rdir
+
+ BACKUP_FULLPATH=""
+ for i in $BACKUPLIST; do
+ BACKUP_FULLPATH="$BACKUP_FULLPATH opt/$i"
+ done
+
+ # create tar archives
+ echo "create archives... $BACKUP_FULLPATH"
+ cd $INSTALL_ROOT
+ bash -c "$BACKUPCMD $BACKUP_FULLPATH $EXCLUDE_OPTION"
+
+ # checksum
+ echo "calculate checksum..."
+ xpath="! \( -path \"opt/var/tmp/*\" \)"
+ for i in $RESTORE_EXCEPTION_LIST; do
+ xpath="$xpath ! \( -path \"$i/*\" \)"
+ done
+
+ for i in $BACKUP_FULLPATH; do
+ bash -c "find $i $xpath -type f -exec md5sum {} \; >> $rdir/checksum.md5"
+ bash -c "find $i $xpath -exec /usr/bin/chsmack {} \; >> $rdir/smack_label.txt"
+ done
+
+ chmod go-rwx $rdir/* $rdir $rdir/..
+}
+
+case "$1" in
+tar)
+#SCM use opt/var/tmp for temporal files, the files are removed before the binary creation
+ EXCLUDE_OPTION="--exclude=opt/var/tmp/*"
+ for i in $RESTORE_EXCEPTION_LIST; do
+ EXCLUDE_OPTION="$EXCLUDE_OPTION --exclude=$i"
+ done
+ BACKUPCMD="tar czf $rdir/opt.tar.gz"
+ create_archive
+ ;;
+""|zip)
+#SCM use opt/var/tmp for temporal files, the files are removed before the binary creation
+ EXCLUDE_OPTION="-x "opt/var/tmp/*""
+ for i in $RESTORE_EXCEPTION_LIST; do
+ EXCLUDE_OPTION="$EXCLUDE_OPTION \"$i/*\""
+ done
+ BACKUPCMD="zip -yrX- $rdir/opt.zip"
+ create_archive
+ ;;
+*)
+ echo "Usage: $0 {tar|zip}"
+ echo "zip is used by default"
+ cd $CURDIR
+ exit 2
+ ;;
+esac
+
+cd $CURDIR
+## end - building backup data
+
diff --git a/script/dump-frlog.sh b/script/dump-frlog.sh
new file mode 100644
index 0000000..b3e495d
--- /dev/null
+++ b/script/dump-frlog.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+#--------------------------------------
+# Factory-reset
+#--------------------------------------
+FACTORY_RESET_DEBUG=$1/factory-reset
+/bin/mkdir -p ${FACTORY_RESET_DEBUG}
+/bin/tar -cvf ${FACTORY_RESET_DEBUG}/factory-reset-log.tar /opt/.factoryreset*
+
diff --git a/script/factoryreset-verify-result.sh b/script/factoryreset-verify-result.sh
new file mode 100755
index 0000000..d482158
--- /dev/null
+++ b/script/factoryreset-verify-result.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# Copyright (c) 20014- 2017 Samsung Electronics Co., Ltd.
+#
+# Contact: MyoungJune Park <mj2004.park@samsung.com>
+# Created by Wonil Choi <wonil22.choi@samsung.com>
+#
+# 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.
+#
+
+
+
+
+logfile="/opt/var/log/.verify.log"
+frlog="/opt/.factoryreset.log"
+
+if [ -e $frlog ]; then
+ logfile="$frlog"
+fi
+
+/bin/grep "NG," ${logfile}
+if [ $? -ne 0 ];then
+ exit 0;
+else
+ exit 1;
+fi
diff --git a/script/factoryreset-verify.sh b/script/factoryreset-verify.sh
new file mode 100644
index 0000000..3302a21
--- /dev/null
+++ b/script/factoryreset-verify.sh
@@ -0,0 +1,101 @@
+#!/bin/sh
+#
+# Copyright (c) 20014- 2017 Samsung Electronics Co., Ltd.
+#
+# Contact: MyoungJune Park <mj2004.park@samsung.com>
+# Created by Wonil Choi <wonil22.choi@samsung.com>
+#
+# 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.
+#
+
+logfile="/tmp/.verify_fail.log"
+logchecksum="/tmp/verify_checksum.log"
+
+CURRENTPATH=`/bin/pwd`
+ROOTDIR=/
+
+OPT="opt/"
+rdir=usr/system/RestoreDir/
+
+cd ${ROOTDIR}
+
+check_verify () {
+# check checksums with target data(restored)
+ cd $ROOTDIR; /usr/bin/md5sum -c ${ROOTDIR}${rdir}checksum.md5 > $logchecksum
+
+ if [ $? -ne 0 ];then
+ echo "reset verify failed"
+ # RESERVED STRING for verification result
+ echo "FACTORYRESET VERIFICATION : FAIL"
+ /bin/grep FAIL $logchecksum
+ /bin/grep FAIL $logchecksum > $logfile
+ FACTORY_RESULT="NG,"
+# CALLS
+ CALLS_DB=`/bin/grep "phone-misc.db:" $logfile`
+# CALLS_APP=`/bin/grep "org.tizen.phone" $logfile`
+# contact db also has call logs
+ CONTACT_DB=`/bin/grep "contacts-svc.db:" $logfile`
+ if [[ "z$CALLS_DB" != "z" || "z$CALLS_APP" != "z" ||
+ "z$CONTACT_DB" != "z" ]]; then
+ FACTORY_RESULT="${FACTORY_RESULT}CALLS/"
+ fi
+# SMEMO
+ SMEMO_DB=`/bin/grep "smemo.db:" $logfile`
+# SMEMO_APP=`/bin/grep "org.tizen.smemo" $logfile`
+ if [[ "z$SMEMO_DB" != "z" || "z$SMEMO_APP" != "z" ]]; then
+ FACTORY_RESULT="${FACTORY_RESULT}SMEMO/"
+ fi
+# MEMO
+ MEMO_DB=`/bin/grep "\.memo.db:" $logfile`
+# MEMO_APP=`/bin/grep "org.tizen.memo" $logfile`
+ if [[ "z$MEMO_DB" != "z" || "z$MEMO_APP" != "z" ]]; then
+ FACTORY_RESULT="${FACTORY_RESULT}MEMO/"
+ fi
+# SMS/MMS
+ MSG_DB=`/bin/grep "msg_service.db:" $logfile`
+# MSG_APP=`/bin/grep "org.tizen.message" $logfile`
+# MSG_SVC=`/bin/grep "msg-service" $logfile`
+ if [[ "z$MSG_DB" != "z" || "z$MSG_APP" != "z" ||
+ "z$MSG_SVC" != "z" ]]; then
+ FACTORY_RESULT="${FACTORY_RESULT}SMS/MMS/"
+ fi
+# ALARM
+ ALARM_DB=`/bin/grep "alarm.db:" $logfile`
+# ALARM_APP=`/bin/grep "org.tizen.clock" $logfile`
+ ALARMMGR_DB=`/bin/grep "alarmmgr.db:" $logfile`
+ if [[ "z$ALARM_DB" != "z" || "z$ALARM_APP" != "z" ||
+ "z$ALARMMGR_DB" != "z" ]]; then
+ FACTORY_RESULT="${FACTORY_RESULT}ALARM/"
+ fi
+# CONTACT
+# CONTACT_APP=`/bin/grep "org.tizen.contacts" $logfile`
+# CONTACT_SVC=`/bin/grep "contacts-svc" $logfile`
+ if [[ "z$CONTACT_DB" != "z" || "z$CONTACT_APP" != "z" ||
+ "z$CONTACT_SVC" != "z" ]]; then
+ FACTORY_RESULT="${FACTORY_RESULT}CONTACT/"
+ fi
+
+## Report final results
+ if [ "$FACTORY_RESULT" != "NG," ]; then
+ echo $FACTORY_RESULT
+ fi
+ else
+ echo "factory reset verify success"
+ echo "FACTORYRESET VERIFICATION : OK"
+ fi
+
+ /bin/rm -f $logfile
+ /bin/rm -f $logchecksum
+}
+
+check_verify
diff --git a/script/run-factory-reset.sh b/script/run-factory-reset.sh
new file mode 100755
index 0000000..c2d1f54
--- /dev/null
+++ b/script/run-factory-reset.sh
@@ -0,0 +1,299 @@
+#!/bin/sh
+#
+# Copyright (c) 20014- 2017 Samsung Electronics Co., Ltd.
+#
+# Contact: MyoungJune Park <mj2004.park@samsung.com>
+# Created by Wonil Choi <wonil22.choi@samsung.com>
+#
+# 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.
+#
+
+logfile="/opt/.factoryreset.log"
+logfile1="/opt/.factoryreset.log.1"
+logchecksum="/tmp/factory_reset_checksum.log"
+
+CURRENTPATH=`/bin/pwd`
+ROOTDIR=/
+USRDATADIR=/opt/usr
+
+OPT="opt/"
+rdir=/usr/system/RestoreDir/
+FLAG_FTRRST_CP=
+FLAG_WITHOUT_CP=
+
+for arg in $@
+do
+ case "$arg" in
+ "--ftrrstcp")
+ FLAG_FTRRST_CP="yes"
+ ;;
+ "--withoutcp")
+ FLAG_WITHOUT_CP="yes"
+ ;;
+ esac
+done
+
+cd ${ROOTDIR}
+
+kill_normal_daemons () {
+ LIST=`/bin/ls /proc/`
+ for i in $LIST
+ do
+ if [[ `/usr/bin/expr match "$i" '[0-9]*'` != 0 && -f /proc/${i}/cmdline ]]; then
+ cmd=`/bin/cat /proc/${i}/cmdline | /usr/bin/tr '\000' ' ' | /usr/bin/awk '{print $1}'`
+ if [ `/usr/bin/expr match "$cmd" '[\/a-zA-Z\-]*'` != 0 ]; then
+ pname=`/bin/echo $cmd | /usr/bin/awk '{print $1}' | /usr/bin/awk -F '/' '{print $NF'}`
+ if [[ $pname != "factory-reset" &&
+ $pname != "rc.shutdown" &&
+ $pname != "run-factory-reset.sh" &&
+ $pname != "enlightenment" &&
+ $pname != "factory-reset-util" &&
+ $pname != "dbus-daemon" &&
+ $pname != "init" &&
+ $pname != "-sh" &&
+ $pname != "sh" &&
+ $pname != "agetty" &&
+ $pname != "Xorg" &&
+ $pname != "initnormal" &&
+ $pname != "system-recovery" &&
+ $pname != "systemd-logind" &&
+ $pname != "systemd-journald" &&
+ $pname != "systemd-udevd" &&
+ $pname != "mpdecision" &&
+ $pname != "thermal-engine" &&
+ $pname != "rmt_storage" &&
+ $pname != "systemd" ]]
+ then
+ echo $pname: kill $1 it.
+ /usr/bin/killall $1 $pname
+ else
+ echo $pname: ignore killing.
+ fi
+ fi
+ fi
+ done
+}
+
+kill_before_reset () {
+## disable systemd-releaseagent
+ echo /bin/true > /sys/fs/cgroup/vip/release_agent
+ /bin/umount -lf /sys/fs/cgroup
+
+## kill processes
+ /usr/bin/killall lockscreen
+# avoid crash popup
+ /usr/bin/killall -STOP deviced
+# kill all apps first.
+ /usr/bin/killall launchpad_preloading_preinitializing_daemon
+
+ kill_normal_daemons
+# some apps revive scim. so kill again.
+ /usr/bin/killall -9 scim-launcher isf-panel-efl
+ echo "Check and kill again."
+ kill_normal_daemons -9
+}
+
+check_fail() {
+ cur_result=`/bin/grep " : FAIL" ${logfile}`
+ old_result=`/bin/grep " : FAIL" ${logfile1}`
+ if [[ "z$cur_result" != "z" && "z$old_result" != "z$cur_result" ]]; then
+ # reboot and retry
+ /bin/sync
+ /sbin/reboot
+ fi
+}
+
+# mount and umount partitions
+fs_ready() {
+# data in microsd should be preserved.
+ /bin/umount -lf ${OPT}/storage/sdcard
+ #for encryption. If encrypted, it is mounted one more time as encryptfs.
+ /bin/umount -lf ${OPT}/storage/sdcard
+# modem binary images should be preserved.
+ /bin/umount -lf ${OPT}/modem
+# phone usr partition should be reset
+ /bin/mkdir -p $USRDATADIR
+ /bin/mount $USRDATADIR
+ mret=`/bin/grep "$USRDATADIR " /proc/mounts | /usr/bin/awk '{print $1}'`
+ device=`/bin/grep "$USRDATADIR" /etc/fstab | /usr/bin/awk '{print $1}'`
+ device=`/usr/bin/readlink -f $device`
+ if [[ "z$mret" != "z" && "$mret" != "$device" ]]; then
+ echo "$mret != $device" >> $logfile
+ echo "$USRDATADIR may be encrypted : FAIL" >> $logfile
+ check_fail
+ fi
+ if [[ "z$mret" = "z" && "z$device" != "z" ]]; then
+ # mount failed. format and remount
+ echo "$USRDATADIR mount failed. format and retry to mount again" >> $logfile
+ fstype=`/bin/grep "$USRDATADIR " /etc/fstab | /usr/bin/awk '{print $3}'`
+ /sbin/mkfs.$fstype $device -F
+ /bin/mount -t $fstype $device $USRDATADIR
+ fi
+ mret=`/bin/grep "$USRDATADIR " /proc/mounts | /usr/bin/awk '{print $2}'`
+ if [ "z$mret" = "z" ]; then
+ echo "$USRDATADIR MOUNT : FAIL" >> $logfile
+ # reboot and retry
+ /bin/sync
+ /sbin/reboot
+ fi
+ check_fail
+}
+
+disable_keys() {
+ key_dir=`/bin/ls -1d /sys/devices/gpio_keys*`
+ if [ "z$key_dir" != "z" ]; then
+ key_code=`/bin/cat $key_dir/keys`
+ echo $key_code > $key_dir/disabled_keys
+ fi
+ # If cannot disabled keys by sysfs, kill apps about key operations
+ # systemctl stop starter
+ # /usr/bin/killall volume
+ # /usr/bin/killall cluster-home
+}
+
+if [ -r ${rdir}opt.tar.gz ]; then
+ RSTCMD="/bin/tar xvzf ${rdir}opt.tar.gz -C /"
+elif [ -r ${rdir}opt.zip ]; then
+ RSTCMD="/usr/bin/unzip -n -X ${rdir}opt.zip"
+else
+ exit 1
+fi
+
+## display ui
+cnt=0
+while [[ ! -e /tmp/.wm_ready && $cnt -le 10 ]]
+do
+ echo "waiting window manager $cnt" >> $logfile
+ cnt=$(($cnt+1))
+ /bin/sleep 1
+done
+
+if [ -e /tmp/.wm_ready ]; then
+ /usr/bin/factory-reset-util --displayui &
+ disable_keys
+fi
+
+## start
+echo "Factory Resetting..."
+echo "*******************" >> $logfile
+echo "Start Factory Reset" >> $logfile
+/bin/date >> $logfile
+
+## stop lcd on-off and turn lcd on
+ss_ready=`/bin/ps -ef | /bin/grep -e "deviced\|system_server" | /bin/grep -v grep`
+if [ "z$ss_ready" != "z" ]; then
+ /usr/bin/dbus-send --system --type=method_call --print-reply --reply-timeout=10000 \
+ --dest=org.tizen.system.deviced /Org/Tizen/System/DeviceD/Display \
+ org.tizen.system.deviced.display.stop
+fi
+
+/bin/sync
+if [ "z$FLAG_WITHOUT_CP" == "zyes" ]; then
+ echo "whithout cp" >> $logfile
+else
+## shutdown modem
+ cp_ok=`/bin/ps -ef | /bin/grep telephony-daemon | /bin/grep -v grep`
+ if [[ "z$cp_ok" != "z" && "z$FLAG_FTRRST_CP" == "zyes" ]]; then
+ /usr/bin/factory-reset-util --ftrrstcp
+ echo "factory reset cp" >> $logfile
+ elif [ "z$cp_ok" != "z" ]; then
+ # cp service reset is default value.
+ /usr/bin/factory-reset-util --svcrstcp
+ echo "cp shutdown" >> $logfile
+ else
+ echo "There is no telephony-daemon" >> $logfile
+ fi
+fi
+
+# reset audio - If not, some targets make noise when rebooting.
+#/usr/bin/sound_server --soundreset
+
+##kill_before_reset
+
+fs_ready
+echo "file system ready for factory reset" >> $logfile
+
+# For "Find my mobile" feature, it should work after factory reset.
+# So backup its data.
+#if [ -r /usr/share/oma-dm-cfg/factory_reset/dm_backup.sh ]; then
+# echo "backup oma dm data"
+# /usr/share/oma-dm-cfg/factory_reset/dm_backup.sh
+#fi
+
+## Restore
+echo "Delete & Restore System Files..." >> $logfile
+
+#remove all files
+rmlist=`/bin/ls -1 ${OPT}`
+for i in $rmlist
+do
+ # except /opt/system. because there are csc configurations and they are
+ # updated after binary downloaded. And they should be preserved.
+ if [ "$i" != "system" ]; then
+ /bin/rm -rf ${OPT}$i
+ fi
+done
+
+# For Tizen CC (Mobile Device Fundamentals Protection Profile Common Criteria)
+if [ -r /usr/bin/resetCCMode ]; then
+ echo "MDFPP enabled" >> $logfile
+ /usr/bin/resetCCMode >> $logfile
+fi
+
+/sbin/fstrim -v $USRDATADIR >> $logfile
+
+# Delete finished. Restore starts here.
+cd /
+$RSTCMD
+echo "$RSTCMD return $?" >> $logfile
+
+mret=`/bin/grep "$USRDATADIR " /proc/mounts | /bin/grep rw | /usr/bin/awk '{print $2}'`
+if [ "z$mret" = "z" ]; then
+ echo "$USRDATADIR is not RW MOUNTED, RESTORATION : FAIL" >> $logfile
+ /bin/rm -rf $USRDATADIR
+ check_fail
+fi
+
+#check_verify
+/usr/bin/factoryreset-verify.sh >> ${logfile}
+check_fail
+
+/bin/mkdir -p /opt/var/log/
+/bin/touch /opt/var/log/Xorg.0.log
+
+/usr/bin/rstsmack ${rdir}smack_label.txt >> $logfile
+
+# Removable preload tpk apps will be installed by package manager
+if [ -e $INSTALL_ROOT/usr/packages/restore_exception.list ]; then
+ pkgcmd -f
+fi
+
+cd ${CURRENTPATH}
+/bin/date >> $logfile
+
+## Factory Reset Count
+cnt_file="/opt/system/factory-reset-cnt"
+if [ -r $cnt_file ]; then
+ reset_cnt=`/bin/cat $cnt_file`
+ reset_cnt=$(($reset_cnt+1))
+ echo $reset_cnt > $cnt_file
+else
+ echo 1 > $cnt_file
+ /usr/bin/chsmack -a "*" $cnt_file
+ /bin/chmod 644 $cnt_file
+fi
+
+/bin/sync
+
+echo "Finish FactoryReset..."
+
diff --git a/src/ccerror.h b/src/ccerror.h
new file mode 100755
index 0000000..e9d0d6c
--- /dev/null
+++ b/src/ccerror.h
@@ -0,0 +1,14 @@
+#ifndef CC_ERROR_H
+#define CC_ERROR_H
+
+#define CC_ERROR_BASE 500
+#define CC_ERROR_FILE_BASE 100
+#define CC_ERROR_FUNCTION_BASE 20
+#define CC_ERROR_NONE 0
+
+#define CC_ERROR_UTIL_GETCCMODE CC_ERROR_BASE //500
+#define CC_ERROR_UTIL_RESETSBFCCM CC_ERROR_UTIL_GETCCMODE+CC_ERROR_FUNCTION_BASE
+#define CC_ERROR_ZEROISE CC_ERROR_UTIL_GETCCMODE+CC_ERROR_FILE_BASE
+#define CC_ERROR_VERIFY 100 //100
+
+#endif
diff --git a/src/factory-reset-util.c b/src/factory-reset-util.c
new file mode 100755
index 0000000..508ebe2
--- /dev/null
+++ b/src/factory-reset-util.c
@@ -0,0 +1,382 @@
+/*
+ * Copyright (c) 2000 - 2017 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ * Created by Wonil Choi <wonil22.choi@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <stdio.h>
+#include <getopt.h>
+
+#if 0
+#ifndef TELEPHONY_DISABLE
+#include <tapi_common.h>
+#include <TapiCommon.h>
+#include <ITapiModem.h>
+#include <ITapiCfg.h>
+#endif
+#endif
+
+//#include <Ecore_X.h>
+//#include <utilX.h>
+#include <appcore-efl.h>
+
+#include "factory-reset-util.h"
+
+#ifndef FACTORY_RESET_FONT_SIZE
+#define FACTORY_RESET_FONT_SIZE 34 /* default font size */
+#endif
+
+#define FACTORY_RESET_PROCESS_MSG dgettext("factory-reset",\
+ "IDS_ST_BODY_PERFORMING_FACTORY_DATA_RESET_PLEASE_WAIT_ING")
+
+static void win_del(void *data, Evas_Object *obj, void *event)
+{
+ elm_exit();
+}
+
+static void main_quit_cb(void *data, Evas_Object *obj,
+ const char *emission, const char *source)
+{
+ elm_exit();
+}
+
+static Evas_Object* create_win(const char *name)
+{
+ Evas_Object *eo;
+ //Ecore_X_Window xwin;
+ int w, h;
+
+ w = 200;
+ h = 400;
+
+ eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+ if (!eo)
+ return NULL;
+
+ elm_win_title_set(eo, name);
+ elm_win_borderless_set(eo, EINA_TRUE);
+ evas_object_smart_callback_add(eo, "delete,request", win_del, NULL);
+ //ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+ evas_object_resize(eo, w, h);
+
+ /* For default color */
+ //ea_theme_changeable_ui_enabled_set(EINA_TRUE);
+
+#if 0
+ /* Get x-window */
+ xwin = elm_win_xwindow_get(eo);
+ if (xwin == 0) {
+ FR_LOGD("elm_win_xwindow_get() failed\n");
+ return eo;
+ }
+#endif
+
+ /* set notification type */
+ //ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_NOTIFICATION);
+
+ /* set notification's priority */
+ //utilx_set_system_notification_level(ecore_x_display_get(), xwin, UTILX_NOTIFICATION_LEVEL_NORMAL);
+
+ return eo;
+}
+
+static Evas_Object* load_edj(Evas_Object *parent, const char *file,
+ const char *group)
+{
+ Evas_Object *eo;
+ int r;
+
+ eo = elm_layout_add(parent);
+ if (eo) {
+ r = elm_layout_file_set(eo, file, group);
+ if (!r) {
+ evas_object_del(eo);
+ return NULL;
+ }
+
+ evas_object_size_hint_weight_set(eo,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ }
+
+ return eo;
+}
+
+#if 0
+static Evas_Object* _create_progressbar(Evas_Object* parent)
+{
+ Evas_Object *progressbar;
+ Evas_Object *layout = parent;
+
+ /* pending_list style */
+ progressbar = elm_progressbar_add(layout);
+ elm_object_style_set(progressbar, "pending");
+ elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
+ evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_progressbar_pulse(progressbar, EINA_TRUE);
+ elm_object_part_content_set(layout,"pending_pbar", progressbar);
+ evas_object_show(progressbar);
+
+ return layout;
+}
+#endif
+
+static Evas_Object* _create_label(Evas_Object* parent)
+{
+ Evas_Object *label, *layout = parent;
+ char mesg[1024];
+
+ if (parent == NULL)
+ return NULL;
+
+ snprintf(mesg, sizeof(mesg),
+ "<align=center><font color=#C7C7C7><font_size=%d>%s",
+ FACTORY_RESET_FONT_SIZE, FACTORY_RESET_PROCESS_MSG);
+
+ label = elm_label_add(layout);
+ elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
+ evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_part_content_set(layout, "txt_mesg", label);
+ elm_object_text_set(label, mesg);
+ evas_object_show(label);
+
+ return layout;
+}
+
+static int app_create(void *data)
+{
+ struct appdata *ad = data;
+ Evas_Object *win;
+ Evas_Object *ly;
+ int r;
+
+ /* create window */
+ win = create_win(PACKAGE);
+ if (win == NULL)
+ return -1;
+ ad->win = win;
+
+ elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_HIDE);
+ evas_object_show(win);
+
+ /* load edje */
+ ly = load_edj(win, EDJ_FILE, GRP_MAIN);
+ if (ly == NULL)
+ return -1;
+ elm_win_resize_object_add(win, ly);
+ edje_object_signal_callback_add(elm_layout_edje_get(ly),
+ "EXIT", "*", main_quit_cb, NULL);
+ ad->ly_main = ly;
+
+ /* init internationalization */
+ r = appcore_set_i18n(PACKAGE, LOCALEDIR);
+ if (r)
+ return -1;
+
+ //_create_progressbar(ly);
+ _create_label(ly);
+
+ evas_object_show(ly);
+ evas_object_show(win);
+
+ return 0;
+}
+
+static int app_terminate(void *data)
+{
+ struct appdata *ad = data;
+
+ if (ad->ly_main)
+ evas_object_del(ad->ly_main);
+
+ if (ad->win)
+ evas_object_del(ad->win);
+
+ return 0;
+}
+
+static int app_pause(void *data)
+{
+ return 0;
+}
+
+static int app_resume(void *data)
+{
+ return 0;
+}
+
+static int app_reset(bundle *b, void *data)
+{
+ struct appdata *ad = data;
+
+ if (ad->win)
+ elm_win_activate(ad->win);
+
+ return 0;
+}
+
+#if 0
+#ifndef TELEPHONY_DISABLE
+#define CP_OFF_TIMEOUT 15
+static Ecore_Timer *timer_id;
+
+static void cp_shutdown_exit(TapiHandle *handle, const char *noti_id,
+ void *data, void *user_data)
+{
+ tel_deinit(handle);
+ ecore_main_loop_quit();
+}
+
+static void tapi_response(TapiHandle *handle, int result,
+ void *data, void *user_data)
+{
+ if (result != TAPI_API_SUCCESS) {
+ tel_deinit(handle);
+ ecore_main_loop_quit();
+ }
+}
+
+static Eina_Bool timeout_exit(void *data)
+{
+ perror("no notification from telephony!!");
+ ecore_main_loop_quit();
+ return EINA_TRUE;
+}
+
+static int cp_shutdown(void)
+{
+ int ret = 0;
+ TapiHandle *tapi_handle = 0;
+
+ tapi_handle = tel_init(0);
+
+ if (tapi_handle == NULL)
+ return -1;
+
+ FR_LOGD("CP shutdown\n");
+
+ ret = tel_register_noti_event(tapi_handle, TAPI_NOTI_MODEM_POWER,
+ cp_shutdown_exit, NULL);
+ if (ret != TAPI_API_SUCCESS)
+ goto out;
+
+ ret = tel_process_power_command(tapi_handle, TAPI_PHONE_POWER_OFF,
+ tapi_response, NULL);
+ if (ret != TAPI_API_SUCCESS)
+ goto out;
+
+ timer_id = ecore_timer_add(CP_OFF_TIMEOUT, timeout_exit, NULL);
+ if (timer_id == NULL)
+ ret = -1;
+out:
+ if (ret < 0) {
+ tel_deinit(tapi_handle);
+ return -1;
+ }
+ return 0;
+}
+
+/* reset modem configs */
+static int cp_resetcfg(int reset_config)
+{
+ int ret = 0;
+
+ ret = tel_sec_init();
+ if (ret != TAPI_SEC_API_SUCCESS)
+ return -1;
+ /*
+ * Full reset: Initialize all configuration data.
+ * Factory reset (AT+FACTORST=0,0): except IMEI(or ESN, MEID), RF
+ * calibration date, MAC address.
+ * Service reset (Settings -> Back up and reset -> Factory data reset):
+ * except IMEI(or ESN, MEID), RF calibration date, MAC address, Life
+ * time.
+ * Custom reset: except IMEI(or ESN, MEID), RF calibration date, MAC
+ * address, Life time, connection settings, WAP settings.
+ */
+ /* we use the Service reset currently. (except verizon) */
+ ret = tel_set_cfg_default_configuration(reset_config);
+ FR_LOGD("request cp reset with the flag value: %d\n", reset_config);
+ tel_sec_deinit();
+ return ret;
+}
+#else /* TELEPHONY_DISABLE */
+static int cp_shutdown(void) { return -1;} /* in order to avoid main loop */
+static int cp_resetcfg(int reset_config) { return 0;}
+#endif /* TELEPHONY_DISABLE */
+
+#endif
+
+
+int main(int argc, char *argv[])
+{
+ struct appdata ad;
+ struct appcore_ops ops = {
+ .create = app_create,
+ .terminate = app_terminate,
+ .pause = app_pause,
+ .resume = app_resume,
+ .reset = app_reset,
+ };
+ int opt;
+ int index = -1;
+ struct option options[] = {
+ {"displayui", 0, 0, 0},
+ {"svcrstcp", 0, 0, 0}, /* modem service reset */
+ {"ftrrstcp", 0, 0, 0}, /* modem factory reset */
+ {"", 0, 0, 0},
+ {"", 0, 0, 0},
+ {0, 0, 0, 0}
+ };
+
+
+ opt = getopt_long(argc, argv, "", options, &index);
+ if(opt == -1)
+ return 0;
+
+ switch(index) {
+ case 0 :
+ memset(&ad, 0x0, sizeof(struct appdata));
+ ops.data = &ad;
+ return appcore_efl_main(PACKAGE, &argc, &argv, &ops);
+ case 1 :
+ ecore_init();
+ //cp_resetcfg(TAPI_CFG_DEFAULT_SERVICE);
+ //if ( cp_shutdown() == 0) ecore_main_loop_begin();
+ ecore_shutdown();
+ break;
+ case 2 :
+ ecore_init();
+ //cp_resetcfg(TAPI_CFG_DEFAULT_FACTORY);
+ //if ( cp_shutdown() == 0) ecore_main_loop_begin();
+ ecore_shutdown();
+ break;
+ break;
+ case 3 :
+
+ break;
+ case 4 :
+
+ break;
+ default :
+ ;
+ }
+
+ return 0;
+}
+
diff --git a/src/factory-reset-util.h b/src/factory-reset-util.h
new file mode 100644
index 0000000..3f60557
--- /dev/null
+++ b/src/factory-reset-util.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2000 - 2017 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ * Created by Wonil Choi <wonil22.choi@samsung.com>
+ *
+ * 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 <Elementary.h>
+
+#if !defined(PACKAGE)
+# define PACKAGE "factory-reset-util"
+#endif
+#undef PACKAGE
+#define PACKAGE "factory-reset-util"
+#if !defined(LOCALEDIR)
+# define LOCALEDIR "/usr/share/locale"
+#endif
+
+#if !defined(EDJDIR)
+# define EDJDIR "/usr/share/edje"
+#endif
+
+#define EDJ_FILE "/usr/share/edje/factory-reset-util.edj"
+#define GRP_MAIN "main"
+
+struct appdata
+{
+ Evas_Object *win;
+ Evas_Object *ly_main;
+
+ /* add more variables here */
+};
+
+#ifdef DEBUG
+# define FR_LOGD(fmt, arg...) printf(fmt, ##arg)
+#else
+# define FR_LOGD(fmt, arg...)
+#endif
+
diff --git a/src/factory-reset.c b/src/factory-reset.c
new file mode 100644
index 0000000..a0de792
--- /dev/null
+++ b/src/factory-reset.c
@@ -0,0 +1,341 @@
+/*
+ * Copyright (c) 2000 - 2017 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ * Created by Wonil Choi <wonil22.choi@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <linux/reboot.h>
+#include <linux/limits.h>
+#include <sys/reboot.h>
+#include <sys/wait.h>
+#include <sys/types.h>
+#include <time.h>
+#include <getopt.h>
+#include <dbus/dbus.h>
+#include <glib.h>
+#include <dbus/dbus-glib-lowlevel.h>
+
+#define RESET_FLAG_FILE "/opt/.factoryreset"
+static const char RESET_BACKUP_FILE[2][40] = {
+ "/usr/system/RestoreDir/opt.tar.gz",
+ "/usr/system/RestoreDir/opt.zip"
+};
+
+static const char *RUN_SCRIPT_FILE = "/usr/bin/run-factory-reset.sh";
+static const char *LOG_FILE = "/opt/.factoryreset.log";
+static const char *LOG_OLD = "/opt/.factoryreset.log.1";
+
+static char *reset_flag;
+
+void usage()
+{
+ printf("Options: \n");
+ printf(" -b, --dbus Start with dbus signal message\n");
+ printf("\n");
+
+ exit(0);
+}
+
+//extern int csc_svc_config_set_pre_config_for_factory_reset( void );
+/*==================================================================================
+* CSC API Code (12/10/11 applied)
+ - Include header : #include "csc-dispatch.h"
+ - API : int csc_svc_config_set_pre_config_for_factory_reset( void );
+ - Return value : 1 (Success), 0 (Failure, 미리 저장해놓은 거래선 코드가 없을 경우 발생)
+====================================================================================*/
+int __system(const char *argv[])
+{
+ int status;
+ pid_t cpid;
+
+ cpid = fork();
+
+ if (cpid == -1) {
+ perror("fork");
+ return -1;
+ }
+
+ if (cpid == 0) {
+ execvp(argv[0], (char *const *)argv);
+ _exit(-1);
+ } else {
+ if (waitpid(cpid, &status, 0) == -1) {
+ perror("waitpid failed");
+ return -1;
+ }
+ if (WIFSIGNALED(status)) {
+ perror("exit by signal");
+ return -1;
+ }
+ if (!WIFEXITED(status)) {
+ perror("exit abnormally");
+ return -1;
+ }
+ if (WIFEXITED(status) && WEXITSTATUS(status)) {
+ perror("child return error");
+ return -1;
+ }
+ }
+ return 0;
+}
+
+
+#define RESET_DBUS_SERVICE "org.tizen.factoryreset"
+#define RESET_DBUS_INTERFACE RESET_DBUS_SERVICE".start"
+
+static const char granted_caller[6][16] = {
+ "setting",
+ "cscmgr",
+ "wms",
+ "bt", /* when the host device is changed */
+ "omadmagent",
+ "testmode"
+};
+
+static const char list_reset_flags[2][16] = {
+ "ftrrstcp",
+ "withoutcp"
+};
+
+
+static GMainLoop* loop;
+static DBusConnection *bus_conn = NULL;
+static const char *dbus_obj_path = "/org/tizen/factoryreset";
+
+static void unregistered_func (DBusConnection *connection, void *user_data)
+{
+ perror("factory-reset dbus unregistered\n");
+}
+
+static DBusHandlerResult message_func (DBusConnection *connection,
+ DBusMessage *message,
+ void *user_data)
+{
+ /* store the name of factory reset caller. */
+ char caller_name[NAME_MAX];
+ FILE *fp = NULL;
+ int i = 0;
+
+ if (dbus_message_get_type(message) != DBUS_MESSAGE_TYPE_SIGNAL) {
+ perror("Not a dbus-signal\n");
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+
+ if (strncmp(dbus_message_get_interface(message), RESET_DBUS_INTERFACE,
+ strlen(RESET_DBUS_INTERFACE)) != 0) {
+ printf("Not correct interface: \"%s\"\n",
+ dbus_message_get_interface (message));
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+
+ strncpy(caller_name, dbus_message_get_member(message),
+ sizeof(caller_name));
+ caller_name[NAME_MAX - 1] = '\0';
+
+ while (strncmp(granted_caller[i], caller_name,
+ strlen(granted_caller[i]))) {
+ if ((++i) >= sizeof(granted_caller) / sizeof(granted_caller[0])) {
+ printf("Not a granted caller, %s\n", caller_name);
+ /* XXX Warning: Comparing granted caller list cannot
+ * grant good caller or not. Security is and should be
+ * protected by the SMACK rule. This code is only for
+ * preventing that a new unknown caller use factory
+ * reset without confirmation of the factory reset
+ * developer.
+ */
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+ }
+ fp = fopen(LOG_FILE, "a");
+ if (fp != NULL) {
+ fprintf(fp, "Requested by %s, %s\n", caller_name,
+ dbus_message_get_sender(message));
+ fclose(fp);
+ }
+
+ /* member name of dbus signal message may contains reset flags */
+ for (i = 0; i < sizeof(list_reset_flags) / sizeof(list_reset_flags[0]);
+ i++) {
+ if (strstr(caller_name, list_reset_flags[i])) {
+ snprintf(caller_name, NAME_MAX, "--%s",
+ list_reset_flags[i]);
+ reset_flag = strdup(caller_name);
+ break;
+ }
+ }
+
+ g_main_loop_quit(loop);
+ return DBUS_HANDLER_RESULT_HANDLED;
+}
+
+
+static DBusHandlerResult filter_func (DBusConnection *connection,
+ DBusMessage *message, void *user_data)
+{
+ if (dbus_message_is_signal (message, DBUS_INTERFACE_LOCAL,
+ "Disconnected")) {
+ /* Exit cleanly. */
+ printf("Disconnected");
+ }
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+}
+
+static DBusObjectPathVTable dbus_vtable = {
+ unregistered_func,
+ message_func,
+ NULL,
+};
+
+static int process_dbus(void)
+{
+ int ret;
+ DBusError error;
+
+ loop = g_main_loop_new (NULL, FALSE);
+
+ dbus_error_init (&error);
+ bus_conn = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
+ if (!bus_conn) {
+ perror("failed to get dbus system bus");
+ dbus_error_free(&error);
+ return -1;
+ }
+ /* Add message filter to handle Disconnected. */
+ dbus_connection_add_filter(bus_conn, (DBusHandleMessageFunction) filter_func,
+ NULL, NULL);
+
+ ret = dbus_bus_request_name(bus_conn, RESET_DBUS_SERVICE, 0, &error);
+
+ /* Should be ret == -1, if error is set */
+ if (ret == -1 && dbus_error_is_set(&error)) {
+ dbus_error_free (&error);
+ return -1;
+ }
+
+ if (!dbus_connection_register_object_path(bus_conn, dbus_obj_path,
+ &dbus_vtable, NULL)) {
+ return -1;
+ }
+
+ dbus_connection_setup_with_g_main(bus_conn, NULL);
+ g_main_loop_run(loop);
+ return 0;
+}
+
+
+int main(int argc, char **argv)
+{
+ FILE *fp;
+ int ret, i = 0, c;
+ const char *reset_cmd[] = {RUN_SCRIPT_FILE, NULL, NULL};
+ time_t t = time(NULL);
+ struct tm tm2 = *localtime(&t);
+
+ static struct option long_options[] = {
+ {"dbus", no_argument, NULL, 'b'},
+ {0, 0, 0, 0}
+ };
+
+ ret = setuid(0);
+ if (ret < 0) {
+ perror("wrong permission");
+ return -1;
+ }
+
+ /* If there is no factory-reset backup file, don't try to reset. */
+ while (!(fp = fopen(RESET_BACKUP_FILE[i++], "r"))) {
+ if (i >= sizeof(RESET_BACKUP_FILE) /
+ sizeof(RESET_BACKUP_FILE[0])) {
+ perror("backup file is not exist");
+ return -1;
+ }
+ }
+ if (fp != NULL) fclose(fp);
+
+ if (rename(LOG_FILE, LOG_OLD) < 0)
+ perror("can't rename the old log file");
+
+ while (1) {
+
+ int option_index = -1;
+ c = getopt_long(argc, argv, "b", long_options, &option_index);
+ if (c == -1)
+ break;
+
+ switch (c) {
+ case 'b':
+
+ if (process_dbus() < 0) {
+ perror("dbus has some errors.");
+ return -1;
+ }
+ break;
+
+ default:
+ usage();
+ break;
+ }
+ }
+
+ if (optind < argc)
+ usage();
+
+#if 0
+ fp = fopen(RESET_FLAG_FILE, "w");
+ if (fp == NULL) {
+ perror("reset flg file open error");
+ return -1;
+ }
+ fclose(fp);
+#endif
+
+ // Factory Reset Run
+ reset_cmd[1] = reset_flag;
+ __system(reset_cmd);
+
+ // open log file (add local time)
+ fp = fopen(LOG_FILE, "a");
+ if (fp == NULL) {
+ perror("reset log file open error");
+ return -2;
+ }
+
+ // write finish log file
+ fprintf(fp, "End Factory Reset\n%d-%02d-%02d %02d:%02d:%02d\n",
+ tm2.tm_year + 1900, tm2.tm_mon + 1, tm2.tm_mday,
+ tm2.tm_hour, tm2.tm_min, tm2.tm_sec);
+ fclose(fp);
+
+ // remove reset flag file, sync and reboot
+#if 0
+ unlink(RESET_FLAG_FILE);
+#endif
+ sync();
+
+#ifdef DEBUG_BINARY
+ reboot(LINUX_REBOOT_CMD_RESTART);
+#else
+ const char *reboot_cmd[] = {"/usr/sbin/reboot", "debug0x4f4c", NULL};
+ __system(reboot_cmd);
+#endif
+
+ return 0;
+}
diff --git a/src/resetCCMode.c b/src/resetCCMode.c
new file mode 100755
index 0000000..2d3e8fe
--- /dev/null
+++ b/src/resetCCMode.c
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2000 - 2017 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ * Created by Wonil Choi <wonil22.choi@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <fcntl.h>
+#include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include "ccerror.h"
+
+#define PARAM_CC_ENC_RAW_SIZE 64
+#define PARAM_CC_FLAG_OFFSET 0x800
+
+static const char dev_params[] = {
+ "/dev/disk/by-partlabel/param"
+};
+
+int resetSBFCCM(void)
+{
+ int ret, fd;
+ uint8_t eraw[PARAM_CC_ENC_RAW_SIZE];
+
+ memset(eraw, 0, PARAM_CC_ENC_RAW_SIZE);
+ if ((fd = open(dev_params, O_WRONLY)) == -1) {
+ ret = -CC_ERROR_UTIL_RESETSBFCCM;
+ goto open_fail;
+ }
+
+ if (lseek(fd, -(PARAM_CC_FLAG_OFFSET), SEEK_END) == -1) {
+ ret = -(CC_ERROR_UTIL_RESETSBFCCM + 2);
+ goto out;
+ }
+
+ if (write(fd, eraw, PARAM_CC_ENC_RAW_SIZE) != PARAM_CC_ENC_RAW_SIZE) {
+ ret = -(CC_ERROR_UTIL_RESETSBFCCM + 3);
+ goto out;
+ }
+
+ ret = CC_ERROR_NONE;
+out:
+ close(fd);
+open_fail:
+ return ret;
+}
+
+int main(void)
+{
+ int ret = resetSBFCCM();
+ printf("resetSBFCCM() returns %d\n", ret);
+ return ret;
+}
+
diff --git a/src/rstsmack.c b/src/rstsmack.c
new file mode 100644
index 0000000..38d18d5
--- /dev/null
+++ b/src/rstsmack.c
@@ -0,0 +1,148 @@
+/*
+ * rstsmack - Restore smack attributes on files
+ *
+ * Copyright (c) 2000 - 2017 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ * Created by Wonil Choi <wonil22.choi@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <linux/limits.h>
+#include <sys/smack.h>
+
+#ifdef DEBUG
+# define LOGINFO(fmt, arg...) printf(fmt, ##arg)
+#else
+# define LOGINFO(fmt, arg...)
+#endif
+
+void print_help(const char *cmd)
+{
+ printf("Usage: %s <INPUT FILE>\n", cmd);
+ printf(" INPUT FILE should be same format as generated by"
+ " chsmack.\n\n");
+ printf(" Ex) # chsmack /usr/bin/* > /tmp/rstsmack_input.txt\n");
+}
+
+static inline int abandonqm(char *label)
+{
+ int ret = 0;
+ /* ignore last character which must be a quotation mark */
+ ret = (int) strlen(label);
+ ret--;
+ if (ret > SMACK_LABEL_LEN || ret <= 0)
+ return -1;
+ label[ret] = '\0';
+ return 0;
+}
+
+static void set_label(const char *pathname, char *label, int type)
+{
+ int ret = -1;
+
+ if (abandonqm(label) == 0) {
+ ret = smack_lsetlabel(pathname, label, type);
+ if (ret < 0)
+ perror(pathname);
+ } else
+ fprintf(stderr, "The input file has wrong format, %s\n",
+ pathname);
+}
+
+static int parse_and_set(const char *srcfile)
+{
+ /* We assume the text format of input file is same as chsmack output */
+ FILE *fp;
+ int ret = 0;
+ char linebuf[PATH_MAX + 5 * SMACK_LABEL_LEN], pathname[PATH_MAX];
+ char label[SMACK_LABEL_LEN + 1];
+ char *plabel; /* pointer of beginning smack label */
+ fp = fopen(srcfile, "r");
+ if (fp == NULL)
+ return -1;
+
+ while (fgets(linebuf, sizeof(linebuf), fp)) {
+ plabel = strstr(linebuf, " access=");
+ if (plabel && linebuf != plabel) {
+ *plabel = '\0';
+ strncpy(pathname, linebuf, sizeof(pathname));
+ pathname[sizeof(pathname) - 1] = '\0';
+ plabel++;
+ } else {
+ linebuf[strlen(linebuf) - 1] = '\0';
+ LOGINFO("no label, set label: %s, access=\"_\"(floor)\n", linebuf);
+ strncpy(label, "_\"", SMACK_LABEL_LEN);
+ set_label(linebuf, label, SMACK_LABEL_ACCESS);
+ /* TODO: If file name contains " access=" then it would
+ * not be processed */
+ continue;
+ }
+
+ LOGINFO("set label: %s,", pathname);
+
+ ret = sscanf(plabel, "access=\"%s", label);
+ if (ret > 0) {
+ LOGINFO(" access: \"%s", label);
+ set_label(pathname, label, SMACK_LABEL_ACCESS);
+ plabel = plabel + sizeof(" access=\"") + strlen(label);
+ }
+
+ ret = sscanf(plabel, "execute=\"%s", label);
+ if (ret > 0) {
+ LOGINFO(", exec: \"%s", label);
+ set_label(pathname, label, SMACK_LABEL_EXEC);
+ plabel = plabel + sizeof(" execute=\"") + strlen(label);
+ }
+
+ ret = sscanf(plabel, "mmap=\"%s", label);
+ if (ret > 0) {
+ LOGINFO(", mmap: \"%s", label);
+ set_label(pathname, label, SMACK_LABEL_MMAP);
+ plabel = plabel + sizeof(" mmap=\"") + strlen(label);
+ }
+
+ ret = sscanf(plabel, "transmute=\"%s", label);
+ if (ret > 0) {
+ LOGINFO(", transmute: \"%s", label);
+ strncpy(label, "1\"", SMACK_LABEL_LEN);
+ set_label(pathname, label, SMACK_LABEL_TRANSMUTE);
+ }
+ LOGINFO("\n");
+
+ }
+ fclose(fp);
+ return 0;
+}
+
+int main(int argc, char *argv[])
+{
+ if (argc < 2) {
+ print_help(argv[0]);
+ return -1;
+ }
+ if (parse_and_set(argv[1]) < 0) {
+ print_help(argv[0]);
+ return -1;
+ }
+ return 0;
+}