make info_dict and GetTypeAndDevice available to device extensions
Change-Id: I3aa04cb6d7988fc1fdd7f179634b09ceab5749fb
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index be8333b..a236a12 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -766,3 +766,20 @@
th.start()
while threads:
threads.pop().join()
+
+
+# map recovery.fstab's fs_types to mount/format "partition types"
+PARTITION_TYPES = { "yaffs2": "MTD", "mtd": "MTD",
+ "ext4": "EMMC", "emmc": "EMMC" }
+
+def GetTypeAndDevice(mount_point, info):
+ fstab = info["fstab"]
+ if fstab:
+ return PARTITION_TYPES[fstab[mount_point].fs_type], fstab[mount_point].device
+ else:
+ devices = {"/boot": "boot",
+ "/recovery": "recovery",
+ "/radio": "radio",
+ "/data": "userdata",
+ "/cache": "cache"}
+ return info["partition_type"], info.get("partition_path", "") + devices[mount_point]
diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py
index c7bca49..756d673 100644
--- a/tools/releasetools/edify_generator.py
+++ b/tools/releasetools/edify_generator.py
@@ -21,10 +21,6 @@
"""Class to generate scripts in the 'edify' recovery script language
used from donut onwards."""
- # map recovery.fstab's fs_types to mount/format "partition types"
- PARTITION_TYPES = { "yaffs2": "MTD", "mtd": "MTD",
- "ext4": "EMMC", "emmc": "EMMC" }
-
def __init__(self, version, info):
self.script = []
self.mounts = set()
@@ -141,7 +137,7 @@
if fstab:
p = fstab[mount_point]
self.script.append('mount("%s", "%s", "%s", "%s");' %
- (p.fs_type, self.PARTITION_TYPES[p.fs_type],
+ (p.fs_type, common.PARTITION_TYPES[p.fs_type],
p.device, p.mount_point))
self.mounts.add(p.mount_point)
else:
@@ -176,7 +172,7 @@
if fstab:
p = fstab[partition]
self.script.append('format("%s", "%s", "%s");' %
- (p.fs_type, self.PARTITION_TYPES[p.fs_type], p.device))
+ (p.fs_type, common.PARTITION_TYPES[p.fs_type], p.device))
else:
# older target-files without per-partition types
partition = self.info.get("partition_path", "") + partition
@@ -223,7 +219,7 @@
fstab = self.info["fstab"]
if fstab:
p = fstab[mount_point]
- partition_type = self.PARTITION_TYPES[p.fs_type]
+ partition_type = common.PARTITION_TYPES[p.fs_type]
args = {'device': p.device, 'fn': fn}
if partition_type == "MTD":
self.script.append(
diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files
index 98a4d19..aa691b4 100755
--- a/tools/releasetools/ota_from_target_files
+++ b/tools/releasetools/ota_from_target_files
@@ -76,10 +76,6 @@
OPTIONS.extra_script = None
OPTIONS.worker_threads = 3
-# TODO: this is duplicated from edify_generator.py; fix.
-PARTITION_TYPES = { "yaffs2": "MTD", "mtd": "MTD",
- "ext4": "EMMC", "emmc": "EMMC" }
-
def MostPopularKey(d, default):
"""Given a dict, return the key corresponding to the largest
value. Returns 'default' if the dict is empty."""
@@ -95,19 +91,6 @@
return (info.external_attr >> 16) == 0120777
-def GetTypeAndDevice(mount_point, info):
- fstab = info["fstab"]
- if fstab:
- return PARTITION_TYPES[fstab[mount_point].fs_type], fstab[mount_point].device
- else:
- devices = {"/boot": "boot",
- "/recovery": "recovery",
- "/radio": "radio",
- "/data": "userdata",
- "/cache": "cache"}
- return info["partition_type"], info.get("partition_path", "") + devices[mount_point]
-
-
class Item:
"""Items represent the metadata (user, group, mode) of files and
directories in the system image."""
@@ -328,8 +311,8 @@
common.ZipWriteStr(output_zip, "recovery/recovery-from-boot.p", patch)
Item.Get("system/recovery-from-boot.p", dir=False)
- boot_type, boot_device = GetTypeAndDevice("/boot", OPTIONS.info_dict)
- recovery_type, recovery_device = GetTypeAndDevice("/recovery", OPTIONS.info_dict)
+ boot_type, boot_device = common.GetTypeAndDevice("/boot", OPTIONS.info_dict)
+ recovery_type, recovery_device = common.GetTypeAndDevice("/recovery", OPTIONS.info_dict)
# Images with different content will have a different first page, so
# we check to see if this recovery has already been installed by
@@ -375,7 +358,8 @@
output_zip=output_zip,
script=script,
input_tmp=OPTIONS.input_tmp,
- metadata=metadata)
+ metadata=metadata,
+ info_dict=OPTIONS.info_dict)
if not OPTIONS.omit_prereq:
ts = GetBuildProp("ro.build.date.utc", input_zip)
@@ -476,7 +460,8 @@
target_version=target_version,
output_zip=output_zip,
script=script,
- metadata=metadata)
+ metadata=metadata,
+ info_dict=OPTIONS.info_dict)
print "Loading target..."
target_data = LoadSystemFiles(target_zip)
@@ -573,7 +558,7 @@
common.ZipWriteStr(output_zip, "patch/boot.img.p", d)
- boot_type, boot_device = GetTypeAndDevice("/boot", OPTIONS.info_dict)
+ boot_type, boot_device = common.GetTypeAndDevice("/boot", OPTIONS.info_dict)
script.PatchCheck("%s:%s:%d:%s:%d:%s" %
(boot_type, boot_device,