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:
@@ -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():
|
||||
|
Reference in New Issue
Block a user