Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca23f57c authored by Ying Wang's avatar Ying Wang Committed by Android Git Automerger
Browse files

am de90b030: Merge "A build property\'s value is returned empty in runtime...

am de90b030: Merge "A build property\'s value is returned empty in runtime when its length exceeds 92 symbols (91 valid symbols + \0). It is better to catch that issue on earlier stage, i.e. fail the build with an appropriate message."

* commit 'de90b030':
  A build property's value is returned empty in runtime when its length exceeds 92 symbols (91 valid symbols + \0). It is better to catch that issue on earlier stage, i.e. fail the build with an appropriate message.
parents b6d53f0b de90b030
Loading
Loading
Loading
Loading
+32 −1
Original line number Diff line number Diff line
@@ -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 + "="