OSDN Git Service

read partition length from recovery.fstab
authorDoug Zongker <dougz@android.com>
Thu, 17 Feb 2011 23:54:20 +0000 (15:54 -0800)
committerEd Heyl <ed@google.com>
Fri, 25 Feb 2011 02:39:27 +0000 (18:39 -0800)
Don't hardcode magical partition behavior in the script generator.

Change-Id: I4aeea022f8a32a7c9f316be2c2514510344ca0e0

tools/releasetools/common.py
tools/releasetools/edify_generator.py

index 3cc86bf..fbdd5eb 100644 (file)
@@ -156,11 +156,27 @@ def LoadRecoveryFSTab(zip):
     p.mount_point = pieces[0]
     p.fs_type = pieces[1]
     p.device = pieces[2]
-    if len(pieces) == 4:
-      p.device2 = pieces[3]
+    p.length = 0
+    options = None
+    if len(pieces) >= 4:
+      if pieces[3].startswith("/"):
+        p.device2 = pieces[3]
+        if len(pieces) >= 5:
+          options = pieces[4]
+      else:
+        p.device2 = None
+        options = pieces[3]
     else:
       p.device2 = None
 
+    if options:
+      options = options.split(",")
+      for i in options:
+        if i.startswith("length="):
+          p.length = int(i[7:])
+        else:
+          print "%s: unknown option \"%s\"" % (p.mount_point, i)
+
     d[p.mount_point] = p
   return d
 
index 4ed1a07..893cb45 100644 (file)
@@ -172,11 +172,9 @@ class EdifyGenerator(object):
     fstab = self.info.get("fstab", None)
     if fstab:
       p = fstab[partition]
-      # 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))
+                         (p.fs_type, common.PARTITION_TYPES[p.fs_type],
+                          p.device, p.length))
     else:
       # older target-files without per-partition types
       partition = self.info.get("partition_path", "") + partition