support for ext4/EMMC in target_files and OTA generation

Move the image sizes into a more generic key-value file.  Make them
optional.  Add additional key/value pairs describing what kind of
filesystem the device uses.  Pass new fs-type-related arguments in
edify scripts when mounting and reformatting partitions.

Don't include all the init.*.rc files from the regular system in
recovery -- they aren't needed, and break recovery on some devices.

Change-Id: Ic1c651f754ed00ba1cffe8cf56c43f7f3b0ebfd7
This commit is contained in:
Doug Zongker
2010-07-01 15:30:11 -07:00
parent 671f5fb09f
commit c19a8d5590
5 changed files with 104 additions and 35 deletions

View File

@@ -58,9 +58,35 @@ def Run(args, **kwargs):
return subprocess.Popen(args, **kwargs)
def LoadMaxSizes():
def LoadInfoDict():
"""Read and parse the META/misc_info.txt key/value pairs from the
input target files and return a dict."""
d = {}
try:
for line in open(os.path.join(OPTIONS.input_tmp, "META", "misc_info.txt")):
line = line.strip()
if not line or line.startswith("#"): continue
k, v = line.split("=", 1)
d[k] = v
except IOError, e:
if e.errno == errno.ENOENT:
# ok if misc_info.txt file doesn't exist
pass
else:
raise
if "fs_type" not in d: info["fs_type"] = "yaffs2"
if "partition_type" not in d: info["partition_type"] = "MTD"
return d
def LoadMaxSizes(info):
"""Load the maximum allowable images sizes from the input
target_files size."""
target_files. Uses the imagesizes.txt file if it's available
(pre-honeycomb target_files), or the more general info dict (which
must be passed in) if not."""
OPTIONS.max_image_size = {}
try:
for line in open(os.path.join(OPTIONS.input_tmp, "META", "imagesizes.txt")):
@@ -71,7 +97,15 @@ def LoadMaxSizes():
OPTIONS.max_image_size[image + ".img"] = size
except IOError, e:
if e.errno == errno.ENOENT:
pass
def copy(x, y):
if x in info: OPTIONS.max_image_size[x+".img"] = int(info[x+y])
copy("blocksize", "")
copy("boot", "_size")
copy("recovery", "_size")
copy("system", "_size")
copy("userdata", "_size")
else:
raise
def LoadMkyaffs2ExtraFlags():