Make it backwards compatible with 4.4

Change-Id: I668604cddc8e8afbf78709f3f872bea4e9f4aa06
diff --git a/toolbox/Android.mk b/toolbox/Android.mk
index c721bbd..4c3e433 100644
--- a/toolbox/Android.mk
+++ b/toolbox/Android.mk
@@ -2,9 +2,13 @@
 LOCAL_PATH := system/core/toolbox
 include $(CLEAR_VARS)
 
-OUR_TOOLS := \
-    start \
-    stop \
+OUR_TOOLS :=
+
+ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 24; echo $$?),0)
+    OUR_TOOLS := \
+        start \
+        stop
+endif
     
 ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23; echo $$?),0)
     OUR_TOOLS += \
@@ -227,6 +231,13 @@
         LOCAL_SRC_FILES += ../../../$(TWRP_TOOLBOX_PATH)/ls.c
     endif
 endif
+ifeq ($(shell test $(PLATFORM_SDK_VERSION) -gt 23; echo $$?),0)
+    # Rule for making start and stop in N trees
+    LOCAL_SRC_FILES += \
+        ../../../$(TWRP_TOOLBOX_PATH)/start.c \
+        ../../../$(TWRP_TOOLBOX_PATH)/stop.c
+    OUR_TOOLS += start stop
+endif
 
 LOCAL_MODULE := toolbox_recovery
 LOCAL_MODULE_STEM := toolbox
diff --git a/toolbox/start.c b/toolbox/start.c
new file mode 100644
index 0000000..6c8a3f2
--- /dev/null
+++ b/toolbox/start.c
@@ -0,0 +1,21 @@
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <cutils/properties.h>
+
+int start_main(int argc, char *argv[])
+{
+    if(argc > 1) {
+        property_set("ctl.start", argv[1]);
+    } else {
+        /* defaults to starting the common services stopped by stop.c */
+        property_set("ctl.start", "netd");
+        property_set("ctl.start", "surfaceflinger");
+        property_set("ctl.start", "zygote");
+        property_set("ctl.start", "zygote_secondary");
+    }
+
+    return 0;
+}
diff --git a/toolbox/stop.c b/toolbox/stop.c
new file mode 100644
index 0000000..5e3ce3c
--- /dev/null
+++ b/toolbox/stop.c
@@ -0,0 +1,19 @@
+#include <stdio.h>
+#include <string.h>
+
+#include <cutils/properties.h>
+
+int stop_main(int argc, char *argv[])
+{
+    if(argc > 1) {
+        property_set("ctl.stop", argv[1]);
+    } else{
+        /* defaults to stopping the common services */
+        property_set("ctl.stop", "zygote_secondary");
+        property_set("ctl.stop", "zygote");
+        property_set("ctl.stop", "surfaceflinger");
+        property_set("ctl.stop", "netd");
+    }
+
+    return 0;
+}