read partition length from recovery.fstab

Don't hardcode magical partition behavior in the script generator.

Change-Id: I4aeea022f8a32a7c9f316be2c2514510344ca0e0
This commit is contained in:
Doug Zongker 2011-02-17 15:54:20 -08:00 committed by Ed Heyl
parent 287987db4f
commit 9df922a077
2 changed files with 20 additions and 6 deletions

View 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

View 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