This patch incorporates a patch made by John Stultz <https://github.com/johnstultz-work> to allow abootimg to
work with newer Android aboots that do not include an initrd
--- abootimg.c	2019-03-12 03:16:42.335616885 -0500
+++ abootimg.c.1	2019-03-12 03:18:01.550892862 -0500
@@ -163,7 +163,7 @@
  "\n"
  "      bootimg has to be valid Android Boot Image, or the update will abort.\n"
  "\n"
- " abootimg --create <bootimg> [-c \"param=value\"] [-f <bootimg.cfg>] -k <kernel> -r <ramdisk> [-s <secondstage>]\n"
+ " abootimg --create <bootimg> [-c \"param=value\"] [-f <bootimg.cfg>] -k <kernel> [-r <ramdisk>] [-s <secondstage>]\n"
  "\n"
  "      create a new image from scratch.\n"
  "      if the boot image file is a block device, sanity check will be performed to avoid overwriting a existing\n"
@@ -291,7 +291,11 @@
 
   if (!(img->header.ramdisk_size)) {
     fprintf(stderr, "%s: ramdisk size is null\n", img->fname);
-    return 1;
+    /*
+     * On newer AOSP devices, system can be used as rootfs,
+     * resulting in no initrd being used. Thus this case should
+     * not be fatal.
+     */
   }
 
   unsigned page_size = img->header.page_size;
@@ -932,7 +936,7 @@
       break;
 
     case create:
-      if (!bootimg->kernel_fname || !bootimg->ramdisk_fname) {
+      if (!bootimg->kernel_fname) {
         print_usage();
         break;
       }
