summaryrefslogtreecommitdiff
path: root/src/resetCCMode.c
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 /src/resetCCMode.c
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>
Diffstat (limited to 'src/resetCCMode.c')
-rwxr-xr-xsrc/resetCCMode.c72
1 files changed, 72 insertions, 0 deletions
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;
+}
+