Add support for tuning partitions

Allow a simple mechanism to call tune2fs to modify an existing
partition without reformatting.

Bug: 18430740
Change-Id: I9210355b6bfec74d002d1f40b930330740f379a5
diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py
index 7d318a3..e52c264 100644
--- a/tools/releasetools/edify_generator.py
+++ b/tools/releasetools/edify_generator.py
@@ -201,6 +201,17 @@
     """Log a message to the screen (if the logs are visible)."""
     self.script.append('ui_print("%s");' % (message,))
 
+  def TunePartition(self, partition, *options):
+    fstab = self.info.get("fstab", None)
+    if fstab:
+      p = fstab[partition]
+      if (p.fs_type not in ( "ext2", "ext3", "ext4")):
+        raise ValueError("Partition %s cannot be tuned\n" % (partition,))
+    self.script.append('tune2fs(' +
+                       "".join(['"%s", ' % (i,) for i in options]) +
+                       '"%s") || abort("Failed to tune partition %s");'
+                       % ( p.device,partition));
+
   def FormatPartition(self, partition):
     """Format the given partition, specified by its mount point (eg,
     "/system")."""