ASR_BASE
Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/package/system/procd/patches/0005-add-ramdump-init-script.patch b/package/system/procd/patches/0005-add-ramdump-init-script.patch
new file mode 100644
index 0000000..8c65764
--- /dev/null
+++ b/package/system/procd/patches/0005-add-ramdump-init-script.patch
@@ -0,0 +1,46 @@
+--- a/inittab.c
++++ b/inittab.c
+@@ -327,8 +327,8 @@ void procd_inittab(void)
+
+ r = read(fd, cmdline, sizeof(cmdline) - 1);
+ cmdline[r] = '\0';
+- close(fd);
+- regcomp(&pat_cmdline, "PROD=([0-2])", REG_EXTENDED);
++ close(fd);
++ regcomp(&pat_cmdline, "PROD=([0-5])", REG_EXTENDED);
+ if (!regexec(&pat_cmdline, cmdline, 1, cmd_matches, 0)) {
+ cmdline[cmd_matches[0].rm_eo] = '\0';
+ production_mode = atoi(&cmdline[cmd_matches[0].rm_eo - 1]);
+--- a/rcS.c
++++ b/rcS.c
+@@ -207,15 +207,26 @@ static int _rc(struct runqueue *q, char
+ }
+ token = strtok(NULL, " ");
+ } while (token != NULL);
+- if (token == NULL && strstr(gl.gl_pathv[j], "prod_init"))
++
++ if (token == NULL && strstr(gl.gl_pathv[j], "rdp_init"))
+ {
+- add_initd(q, gl.gl_pathv[j], param);
+- break;
++ if (production_mode == 5) {
++ add_initd(q, gl.gl_pathv[j], param);
++ break;
++ } else
++ continue;
++ } else if (token == NULL && strstr(gl.gl_pathv[j], "prod_init"))
++ {
++ if (production_mode == 1) {
++ add_initd(q, gl.gl_pathv[j], param);
++ break;
++ } else
++ continue;
+ } else {
+ continue;
+ }
+ } else {
+- if (strstr(gl.gl_pathv[j], "prod_init"))
++ if (strstr(gl.gl_pathv[j], "prod_init") || strstr(gl.gl_pathv[j], "rdp_init"))
+ continue;
+ }
+ add_initd(q, gl.gl_pathv[j], param);