make info_dict and GetTypeAndDevice available to device extensions
Change-Id: I3aa04cb6d7988fc1fdd7f179634b09ceab5749fb
This commit is contained in:
@@ -766,3 +766,20 @@ def ComputeDifferences(diffs):
|
|||||||
th.start()
|
th.start()
|
||||||
while threads:
|
while threads:
|
||||||
threads.pop().join()
|
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]
|
||||||
|
@@ -21,10 +21,6 @@ class EdifyGenerator(object):
|
|||||||
"""Class to generate scripts in the 'edify' recovery script language
|
"""Class to generate scripts in the 'edify' recovery script language
|
||||||
used from donut onwards."""
|
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):
|
def __init__(self, version, info):
|
||||||
self.script = []
|
self.script = []
|
||||||
self.mounts = set()
|
self.mounts = set()
|
||||||
@@ -141,7 +137,7 @@ class EdifyGenerator(object):
|
|||||||
if fstab:
|
if fstab:
|
||||||
p = fstab[mount_point]
|
p = fstab[mount_point]
|
||||||
self.script.append('mount("%s", "%s", "%s", "%s");' %
|
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))
|
p.device, p.mount_point))
|
||||||
self.mounts.add(p.mount_point)
|
self.mounts.add(p.mount_point)
|
||||||
else:
|
else:
|
||||||
@@ -176,7 +172,7 @@ class EdifyGenerator(object):
|
|||||||
if fstab:
|
if fstab:
|
||||||
p = fstab[partition]
|
p = fstab[partition]
|
||||||
self.script.append('format("%s", "%s", "%s");' %
|
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:
|
else:
|
||||||
# older target-files without per-partition types
|
# older target-files without per-partition types
|
||||||
partition = self.info.get("partition_path", "") + partition
|
partition = self.info.get("partition_path", "") + partition
|
||||||
@@ -223,7 +219,7 @@ class EdifyGenerator(object):
|
|||||||
fstab = self.info["fstab"]
|
fstab = self.info["fstab"]
|
||||||
if fstab:
|
if fstab:
|
||||||
p = fstab[mount_point]
|
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}
|
args = {'device': p.device, 'fn': fn}
|
||||||
if partition_type == "MTD":
|
if partition_type == "MTD":
|
||||||
self.script.append(
|
self.script.append(
|
||||||
|
@@ -76,10 +76,6 @@ OPTIONS.omit_prereq = False
|
|||||||
OPTIONS.extra_script = None
|
OPTIONS.extra_script = None
|
||||||
OPTIONS.worker_threads = 3
|
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):
|
def MostPopularKey(d, default):
|
||||||
"""Given a dict, return the key corresponding to the largest
|
"""Given a dict, return the key corresponding to the largest
|
||||||
value. Returns 'default' if the dict is empty."""
|
value. Returns 'default' if the dict is empty."""
|
||||||
@@ -95,19 +91,6 @@ def IsSymlink(info):
|
|||||||
return (info.external_attr >> 16) == 0120777
|
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:
|
class Item:
|
||||||
"""Items represent the metadata (user, group, mode) of files and
|
"""Items represent the metadata (user, group, mode) of files and
|
||||||
directories in the system image."""
|
directories in the system image."""
|
||||||
@@ -328,8 +311,8 @@ def MakeRecoveryPatch(output_zip, recovery_img, boot_img):
|
|||||||
common.ZipWriteStr(output_zip, "recovery/recovery-from-boot.p", patch)
|
common.ZipWriteStr(output_zip, "recovery/recovery-from-boot.p", patch)
|
||||||
Item.Get("system/recovery-from-boot.p", dir=False)
|
Item.Get("system/recovery-from-boot.p", dir=False)
|
||||||
|
|
||||||
boot_type, boot_device = GetTypeAndDevice("/boot", OPTIONS.info_dict)
|
boot_type, boot_device = common.GetTypeAndDevice("/boot", OPTIONS.info_dict)
|
||||||
recovery_type, recovery_device = GetTypeAndDevice("/recovery", OPTIONS.info_dict)
|
recovery_type, recovery_device = common.GetTypeAndDevice("/recovery", OPTIONS.info_dict)
|
||||||
|
|
||||||
# Images with different content will have a different first page, so
|
# Images with different content will have a different first page, so
|
||||||
# we check to see if this recovery has already been installed by
|
# we check to see if this recovery has already been installed by
|
||||||
@@ -375,7 +358,8 @@ def WriteFullOTAPackage(input_zip, output_zip):
|
|||||||
output_zip=output_zip,
|
output_zip=output_zip,
|
||||||
script=script,
|
script=script,
|
||||||
input_tmp=OPTIONS.input_tmp,
|
input_tmp=OPTIONS.input_tmp,
|
||||||
metadata=metadata)
|
metadata=metadata,
|
||||||
|
info_dict=OPTIONS.info_dict)
|
||||||
|
|
||||||
if not OPTIONS.omit_prereq:
|
if not OPTIONS.omit_prereq:
|
||||||
ts = GetBuildProp("ro.build.date.utc", input_zip)
|
ts = GetBuildProp("ro.build.date.utc", input_zip)
|
||||||
@@ -476,7 +460,8 @@ def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip):
|
|||||||
target_version=target_version,
|
target_version=target_version,
|
||||||
output_zip=output_zip,
|
output_zip=output_zip,
|
||||||
script=script,
|
script=script,
|
||||||
metadata=metadata)
|
metadata=metadata,
|
||||||
|
info_dict=OPTIONS.info_dict)
|
||||||
|
|
||||||
print "Loading target..."
|
print "Loading target..."
|
||||||
target_data = LoadSystemFiles(target_zip)
|
target_data = LoadSystemFiles(target_zip)
|
||||||
@@ -573,7 +558,7 @@ def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip):
|
|||||||
|
|
||||||
common.ZipWriteStr(output_zip, "patch/boot.img.p", d)
|
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" %
|
script.PatchCheck("%s:%s:%d:%s:%d:%s" %
|
||||||
(boot_type, boot_device,
|
(boot_type, boot_device,
|
||||||
|
Reference in New Issue
Block a user