Teach the build system to reserve the last 16 Kbytes of /data for the crypto footer

If making /data and it's an EMMC interface, reserve the last 16 Kbytes
of the partition for the crypto footer.

Change-Id: Ia2c0bb53a545f074e79fc9d6ac04faee75fb9be4
diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py
index a1eea1f..7511465 100644
--- a/tools/releasetools/edify_generator.py
+++ b/tools/releasetools/edify_generator.py
@@ -168,17 +168,21 @@
     """Format the given partition, specified by its mount point (eg,
     "/system")."""
 
+    reserve_size = 0
     fstab = self.info.get("fstab", None)
     if fstab:
       p = fstab[partition]
-      self.script.append('format("%s", "%s", "%s");' %
-                         (p.fs_type, common.PARTITION_TYPES[p.fs_type], p.device))
+      # Reserve the last 16 Kbytes of an EMMC /data for the crypto footer
+      if partition == "/data" and common.PARTITION_TYPES[p.fs_type] == "EMMC":
+        reserve_size = -16384
+      self.script.append('format("%s", "%s", "%s", "%s");' %
+                         (p.fs_type, common.PARTITION_TYPES[p.fs_type], p.device, reserve_size)
     else:
       # older target-files without per-partition types
       partition = self.info.get("partition_path", "") + partition
-      self.script.append('format("%s", "%s", "%s");' %
+      self.script.append('format("%s", "%s", "%s", "%s");' %
                          (self.info["fs_type"], self.info["partition_type"],
-                          partition))
+                          partition, reserve_size))
 
   def DeleteFiles(self, file_list):
     """Delete all files in file_list."""