Merge "Update cuttlefish IRadio with 1.5 methods"
diff --git a/OWNERS b/OWNERS
index ce92c4f..9594320 100644
--- a/OWNERS
+++ b/OWNERS
@@ -2,6 +2,7 @@
 ghartman@google.com
 jemoreira@google.com
 malchev@google.com
-schuffelen@google.com
 muntsinger@google.com
+natsu@google.com
 rammuthiah@google.com
+schuffelen@google.com
diff --git a/guest/monitoring/tombstone_transmit/Android.bp b/guest/monitoring/tombstone_transmit/Android.bp
index 500a5f4..2e0af82 100644
--- a/guest/monitoring/tombstone_transmit/Android.bp
+++ b/guest/monitoring/tombstone_transmit/Android.bp
@@ -21,10 +21,12 @@
     static_libs: [
         "libcuttlefish_fs_product",
         "libgflags",
-        "liblog",
         "libbase",
         "libcutils",
     ],
+    shared_libs: [
+        "liblog",
+    ],
     stl: "libc++_static",
     header_libs: [
         "cuttlefish_glog_product",
diff --git a/host/commands/assemble_cvd/data_image.cc b/host/commands/assemble_cvd/data_image.cc
index 70fe0ef..82dad14 100644
--- a/host/commands/assemble_cvd/data_image.cc
+++ b/host/commands/assemble_cvd/data_image.cc
@@ -15,9 +15,9 @@
 const int FSCK_ERROR_CORRECTED_REQUIRES_REBOOT = 2;
 
 bool ForceFsckImage(const char* data_image) {
-  int fsck_status = cvd::execute({"/sbin/fsck.f2fs", "-y", "-f", data_image});
+  int fsck_status = cvd::execute({"/sbin/e2fsck", "-y", "-f", data_image});
   if (fsck_status & ~(FSCK_ERROR_CORRECTED|FSCK_ERROR_CORRECTED_REQUIRES_REBOOT)) {
-    LOG(ERROR) << "`fsck.f2fs -y -f " << data_image << "` failed with code "
+    LOG(ERROR) << "`e2fsck -y -f " << data_image << "` failed with code "
                << fsck_status;
     return false;
   }
@@ -46,9 +46,9 @@
     if (!fsck_success) {
       return false;
     }
-    int resize_status = cvd::execute({"/sbin/resize.f2fs", data_image});
+    int resize_status = cvd::execute({"/sbin/resize2fs", data_image});
     if (resize_status != 0) {
-      LOG(ERROR) << "`resize.f2fs " << data_image << "` failed with code "
+      LOG(ERROR) << "`resize2fs " << data_image << "` failed with code "
                  << resize_status;
       return false;
     }
diff --git a/host/commands/assemble_cvd/flags.cc b/host/commands/assemble_cvd/flags.cc
index be6c6d1..5c60674 100644
--- a/host/commands/assemble_cvd/flags.cc
+++ b/host/commands/assemble_cvd/flags.cc
@@ -34,7 +34,7 @@
             "'always_create'.");
 DEFINE_int32(blank_data_image_mb, 0,
              "The size of the blank data image to generate, MB.");
-DEFINE_string(blank_data_image_fmt, "f2fs",
+DEFINE_string(blank_data_image_fmt, "ext4",
               "The fs format for the blank data image. Used with mkfs.");
 DEFINE_string(qemu_gdb, "",
               "Debug flag to pass to qemu. e.g. -qemu_gdb=tcp::1234");
@@ -323,31 +323,12 @@
 
   auto ramdisk_path = tmp_config_obj.PerInstancePath("ramdisk.img");
   auto vendor_ramdisk_path = tmp_config_obj.PerInstancePath("vendor_ramdisk.img");
-  bool use_ramdisk = boot_image_unpacker.HasRamdiskImage();
-  if (!use_ramdisk) {
-    LOG(INFO) << "No ramdisk present; assuming system-as-root build";
-    ramdisk_path = "";
-    vendor_ramdisk_path = "";
+  if (!boot_image_unpacker.HasRamdiskImage()) {
+    LOG(INFO) << "A ramdisk is required, but the boot image did not have one.";
+    return false;
   }
 
   tmp_config_obj.add_kernel_cmdline(boot_image_unpacker.kernel_cmdline());
-
-  if (use_ramdisk) {
-    if (FLAGS_composite_disk.empty()) {
-      tmp_config_obj.add_kernel_cmdline("androidboot.fstab_name=fstab");
-    } else {
-      tmp_config_obj.add_kernel_cmdline("androidboot.fstab_name=fstab.composite");
-    }
-  } else {
-    if (FLAGS_composite_disk.empty()) {
-      tmp_config_obj.add_kernel_cmdline("root=/dev/vda");
-      tmp_config_obj.add_kernel_cmdline("androidboot.fstab_name=fstab");
-    } else {
-      tmp_config_obj.add_kernel_cmdline("root=/dev/vda1");
-      tmp_config_obj.add_kernel_cmdline("androidboot.fstab_name=fstab.composite");
-    }
-  }
-
   tmp_config_obj.add_kernel_cmdline("init=/init");
   tmp_config_obj.add_kernel_cmdline(
       concat("androidboot.serialno=", FLAGS_serial_number));
@@ -389,16 +370,7 @@
     tmp_config_obj.add_kernel_cmdline(FLAGS_extra_kernel_cmdline);
   }
 
-  if (!FLAGS_composite_disk.empty()) {
-    tmp_config_obj.set_virtual_disk_paths({FLAGS_composite_disk});
-  } else {
-    tmp_config_obj.set_virtual_disk_paths({
-      FLAGS_super_image,
-      FLAGS_data_image,
-      FLAGS_cache_image,
-      FLAGS_metadata_image,
-    });
-  }
+  tmp_config_obj.set_virtual_disk_paths({FLAGS_composite_disk});
 
   tmp_config_obj.set_ramdisk_image_path(ramdisk_path);
   tmp_config_obj.set_vendor_ramdisk_image_path(vendor_ramdisk_path);
@@ -682,9 +654,6 @@
 }
 
 bool ShouldCreateCompositeDisk() {
-  if (FLAGS_composite_disk.empty()) {
-    return false;
-  }
   if (FLAGS_vm_manager == vm_manager::CrosvmManager::name()) {
     // The crosvm implementation is very fast to rebuild but also more brittle due to being split
     // into multiple files. The QEMU implementation is slow to build, but completely self-contained