import sys
-# See PROP_VALUE_MAX system_properties.h.
-# PROP_VALUE_MAX in system_properties.h includes the termination NUL,
-# so we decrease it by 1 here.
+# Usage: post_process_props.py file.prop [blacklist_key, ...]
+# Blacklisted keys are removed from the property file, if present
+
+# See PROP_NAME_MAX and PROP_VALUE_MAX system_properties.h.
+# The constants in system_properties.h includes the termination NUL,
+# so we decrease the values by 1 here.
+PROP_NAME_MAX = 31
PROP_VALUE_MAX = 91
# Put the modifications that you need to make into the /system/build.prop into this
"").startswith("eng")
for key, value in buildprops.iteritems():
# Check build properties' length.
+ if len(key) > PROP_NAME_MAX:
+ check_pass = False
+ sys.stderr.write("error: %s cannot exceed %d bytes: " %
+ (key, PROP_NAME_MAX))
+ sys.stderr.write("%s (%d)\n" % (key, len(key)))
if len(value) > PROP_VALUE_MAX:
# If dev build, show a warning message, otherwise fail the
# build with error message
for line in self.lines:
if not line or line.startswith("#"):
continue
- key, value = line.split("=", 1)
- props[key] = value
+ if "=" in line:
+ key, value = line.split("=", 1)
+ props[key] = value
return props
def get(self, name):
return
self.lines.append(key + value)
+ def delete(self, name):
+ key = name + "="
+ self.lines = [ line for line in self.lines if not line.startswith(key) ]
+
def write(self, f):
f.write("\n".join(self.lines))
f.write("\n")
if not validate(properties):
sys.exit(1)
+ # Drop any blacklisted keys
+ for key in argv[2:]:
+ properties.delete(key)
+
f = open(filename, 'w+')
properties.write(f)
f.close()