diff --git a/tools/post_process_props.py b/tools/post_process_props.py index 9d69736064..32146e3215 100755 --- a/tools/post_process_props.py +++ b/tools/post_process_props.py @@ -19,7 +19,27 @@ import sys # Put the modifications that you need to make into the /system/build.prop into this # function. The prop object has get(name) and put(name,value) methods. def mangle_build_prop(prop): - pass + buildprops=prop.buildprops + check_pass=True + for key in buildprops: + # Check build properties' length. + # Terminator(\0) added into the provided value of properties + # Total length (including terminator) will be no greater that PROP_VALUE_MAX(92). + if len(buildprops[key]) > 91: + # If dev build, show a warning message, otherwise fail the build with error message + if prop.get("ro.build.version.incremental").startswith("eng"): + sys.stderr.write("warning: " + key + " exceeds 91 symbols: ") + sys.stderr.write(buildprops[key]) + sys.stderr.write("(" + str(len(buildprops[key])) + ") \n") + sys.stderr.write("warning: This will cause the " + key + " ") + sys.stderr.write("property return as empty at runtime\n") + else: + check_pass=False + sys.stderr.write("error: " + key + " cannot exceed 91 symbols: ") + sys.stderr.write(buildprops[key]) + sys.stderr.write("(" + str(len(buildprops[key])) + ") \n") + if not check_pass: + sys.exit(1) # Put the modifications that you need to make into the /system/build.prop into this # function. The prop object has get(name) and put(name,value) methods. @@ -40,8 +60,19 @@ def mangle_default_prop(prop): prop.put("persist.sys.usb.config", "none"); class PropFile: + + buildprops={} + def __init__(self, lines): self.lines = [s[:-1] for s in lines] + for line in self.lines: + line=line.strip() + if not line.strip() or line.startswith("#"): + continue + index=line.find("=") + key=line[0:index] + value=line[index+1:] + self.buildprops[key]=value def get(self, name): key = name + "="