aboutsummaryrefslogtreecommitdiffstats
path: root/recovery_cmds.h
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2013-10-19 19:49:20 -0700
committerTom Marshall <tdm@cyngn.com>2015-11-20 15:46:34 -0800
commitf30dd3d81206fcfcce0404436fa55c997d03924e (patch)
tree1b9721c8724d6c7c09f523a1c58c155419e712e3 /recovery_cmds.h
parent7e9b637c45449d2d4607c9f5ba681deb39c5b230 (diff)
downloadbootable_recovery-f30dd3d81206fcfcce0404436fa55c997d03924e.tar.gz
bootable_recovery-f30dd3d81206fcfcce0404436fa55c997d03924e.tar.bz2
bootable_recovery-f30dd3d81206fcfcce0404436fa55c997d03924e.zip
sr: Get a proper shell environment in recovery
* Secure ADB support * Toybox applets * mksh * Various other tools Change-Id: I80b0e2aa5eb7142eaa9f157709f4e029077d8dfa
Diffstat (limited to 'recovery_cmds.h')
-rw-r--r--recovery_cmds.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/recovery_cmds.h b/recovery_cmds.h
new file mode 100644
index 0000000..a420ae1
--- /dev/null
+++ b/recovery_cmds.h
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2013 The CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _RECOVERY_CMDS_H
+#define _RECOVERY_CMDS_H
+
+#include <stdio.h>
+#include <string.h>
+
+int minizip_main(int argc, char **argv);
+int make_ext4fs_main(int argc, char **argv);
+int reboot_main(int argc, char **argv);
+int poweroff_main(int argc, char **argv);
+int fsck_msdos_main(int argc, char **argv);
+int newfs_msdos_main(int argc, char **argv);
+int pigz_main(int argc, char **argv);
+int start_main(int argc, char **argv);
+int stop_main(int argc, char **argv);
+int mksh_main(int argc, char **argv);
+#ifdef USE_F2FS
+int make_f2fs_main(int argc, char **argv);
+int fsck_f2fs_main(int argc, char **argv);
+int fibmap_main(int argc, char **argv);
+#endif
+
+int toybox_driver(int argc, char **argv);
+
+struct recovery_cmd {
+ const char *name;
+ int (*main_func)(int argc, char **argv);
+};
+
+static const struct recovery_cmd recovery_cmds[] = {
+ { "minizip", minizip_main },
+ { "make_ext4fs", make_ext4fs_main },
+ { "reboot", reboot_main },
+ { "poweroff", reboot_main },
+ { "fsck_msdos", fsck_msdos_main },
+ { "newfs_msdos", newfs_msdos_main },
+ { "pigz", pigz_main },
+ { "gzip", pigz_main },
+ { "gunzip", pigz_main },
+ { "start", start_main },
+ { "stop", stop_main },
+ { "sh", mksh_main },
+#ifdef USE_F2FS
+ { "mkfs.f2fs", make_f2fs_main },
+ { "fsck.f2fs", fsck_f2fs_main },
+ { "fibmap.f2fs", fibmap_main },
+#endif
+ { NULL, NULL },
+};
+
+struct recovery_cmd get_command(char* command) {
+ int i;
+
+ for (i = 0; recovery_cmds[i].name; i++) {
+ if (strcmp(command, recovery_cmds[i].name) == 0)
+ break;
+ }
+
+ return recovery_cmds[i];
+}
+#endif