am 6bdcb981: followup to recent cookie max-age change to remove parameter and use 2-year for all cookies bug: 17781603
* commit '6bdcb981ce098cae2fb9e690485ebaab47b2225a':
followup to recent cookie max-age change to remove parameter and use 2-year for all cookies bug: 17781603
diff --git a/CleanSpec.mk b/CleanSpec.mk
index f348692..ca66178 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -299,6 +299,9 @@
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
+# 5.0.1
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
+
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
diff --git a/core/Makefile b/core/Makefile
index 2177a18..b08ad1b 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -1510,10 +1510,14 @@
name := $(name)-symbols-$(FILE_NAME_TAG)
SYMBOLS_ZIP := $(PRODUCT_OUT)/$(name).zip
+# For apps_only build we'll establish the dependency later in build/core/main.mk.
+ifndef TARGET_BUILD_APPS
$(SYMBOLS_ZIP): $(INSTALLED_SYSTEMIMAGE) $(INSTALLED_BOOTIMAGE_TARGET)
+endif
+$(SYMBOLS_ZIP):
@echo "Package symbols: $@"
$(hide) rm -rf $@
- $(hide) mkdir -p $(dir $@)
+ $(hide) mkdir -p $(dir $@) $(TARGET_OUT_UNSTRIPPED)
$(hide) zip -qr $@ $(TARGET_OUT_UNSTRIPPED)
# -----------------------------------------------------------------
diff --git a/core/main.mk b/core/main.mk
index 749929a..9d6e233 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -936,6 +936,9 @@
$(PROGUARD_DICT_ZIP) : $(apps_only_installed_files)
$(call dist-for-goals,apps_only, $(PROGUARD_DICT_ZIP))
+ $(SYMBOLS_ZIP) : $(apps_only_installed_files)
+ $(call dist-for-goals,apps_only, $(SYMBOLS_ZIP))
+
.PHONY: apps_only
apps_only: $(unbundled_build_modules)
diff --git a/core/version_defaults.mk b/core/version_defaults.mk
index 8cb8d26..36e4e98 100644
--- a/core/version_defaults.mk
+++ b/core/version_defaults.mk
@@ -41,7 +41,7 @@
# which is the version that we reveal to the end user.
# Update this value when the platform version changes (rather
# than overriding it somewhere else). Can be an arbitrary string.
- PLATFORM_VERSION := 5.0
+ PLATFORM_VERSION := 5.0.1
endif
ifeq "" "$(PLATFORM_SDK_VERSION)"
diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py
index bf217e0..e98e4b6 100755
--- a/tools/releasetools/add_img_to_target_files.py
+++ b/tools/releasetools/add_img_to_target_files.py
@@ -45,10 +45,28 @@
OPTIONS = common.OPTIONS
+OPTIONS.add_missing = False
+OPTIONS.rebuild_recovery = False
-def AddSystem(output_zip, prefix="IMAGES/"):
+def AddSystem(output_zip, prefix="IMAGES/", recovery_img=None, boot_img=None):
"""Turn the contents of SYSTEM into a system image and store it in
output_zip."""
+
+ prebuilt_path = os.path.join(OPTIONS.input_tmp, prefix, "system.img")
+ if os.path.exists(prebuilt_path):
+ print "system.img already exists in %s, no need to rebuild..." % (prefix,)
+ return
+
+ def output_sink(fn, data):
+ ofile = open(os.path.join(OPTIONS.input_tmp,"SYSTEM",fn), "w")
+ ofile.write(data)
+ ofile.close()
+
+ if OPTIONS.rebuild_recovery:
+ print("Building new recovery patch")
+ common.MakeRecoveryPatch(OPTIONS.input_tmp, output_sink, recovery_img, boot_img,
+ info_dict=OPTIONS.info_dict)
+
block_list = common.MakeTempFile(prefix="system-blocklist-", suffix=".map")
imgname = BuildSystem(OPTIONS.input_tmp, OPTIONS.info_dict,
block_list=block_list)
@@ -67,6 +85,12 @@
def AddVendor(output_zip, prefix="IMAGES/"):
"""Turn the contents of VENDOR into a vendor image and store in it
output_zip."""
+
+ prebuilt_path = os.path.join(OPTIONS.input_tmp, prefix, "vendor.img")
+ if os.path.exists(prebuilt_path):
+ print "vendor.img already exists in %s, no need to rebuild..." % (prefix,)
+ return
+
block_list = common.MakeTempFile(prefix="vendor-blocklist-", suffix=".map")
imgname = BuildVendor(OPTIONS.input_tmp, OPTIONS.info_dict,
block_list=block_list)
@@ -131,6 +155,11 @@
def AddUserdata(output_zip, prefix="IMAGES/"):
"""Create an empty userdata image and store it in output_zip."""
+ prebuilt_path = os.path.join(OPTIONS.input_tmp, prefix, "userdata.img")
+ if os.path.exists(prebuilt_path):
+ print "userdata.img already exists in %s, no need to rebuild..." % (prefix,)
+ return
+
image_props = build_image.ImagePropFromGlobalDict(OPTIONS.info_dict,
"data")
# We only allow yaffs to have a 0/missing partition_size.
@@ -165,6 +194,11 @@
def AddCache(output_zip, prefix="IMAGES/"):
"""Create an empty cache image and store it in output_zip."""
+ prebuilt_path = os.path.join(OPTIONS.input_tmp, prefix, "cache.img")
+ if os.path.exists(prebuilt_path):
+ print "cache.img already exists in %s, no need to rebuild..." % (prefix,)
+ return
+
image_props = build_image.ImagePropFromGlobalDict(OPTIONS.info_dict,
"cache")
# The build system has to explicitly request for cache.img.
@@ -197,10 +231,11 @@
def AddImagesToTargetFiles(filename):
OPTIONS.input_tmp, input_zip = common.UnzipTemp(filename)
- for n in input_zip.namelist():
- if n.startswith("IMAGES/"):
- print "target_files appears to already contain images."
- sys.exit(1)
+ if not OPTIONS.add_missing:
+ for n in input_zip.namelist():
+ if n.startswith("IMAGES/"):
+ print "target_files appears to already contain images."
+ sys.exit(1)
try:
input_zip.getinfo("VENDOR/")
@@ -221,19 +256,35 @@
print "\n\n++++ " + s + " ++++\n\n"
banner("boot")
- boot_image = common.GetBootableImage(
- "IMAGES/boot.img", "boot.img", OPTIONS.input_tmp, "BOOT")
- if boot_image:
- boot_image.AddToZip(output_zip)
+ prebuilt_path = os.path.join(OPTIONS.input_tmp, "IMAGES", "boot.img")
+ boot_image = None
+ if os.path.exists(prebuilt_path):
+ print "boot.img already exists in IMAGES/, no need to rebuild..."
+ if OPTIONS.rebuild_recovery:
+ boot_image = common.GetBootableImage(
+ "IMAGES/boot.img", "boot.img", OPTIONS.input_tmp, "BOOT")
+ else:
+ boot_image = common.GetBootableImage(
+ "IMAGES/boot.img", "boot.img", OPTIONS.input_tmp, "BOOT")
+ if boot_image:
+ boot_image.AddToZip(output_zip)
banner("recovery")
- recovery_image = common.GetBootableImage(
- "IMAGES/recovery.img", "recovery.img", OPTIONS.input_tmp, "RECOVERY")
- if recovery_image:
- recovery_image.AddToZip(output_zip)
+ recovery_image = None
+ prebuilt_path = os.path.join(OPTIONS.input_tmp, "IMAGES", "recovery.img")
+ if os.path.exists(prebuilt_path):
+ print "recovery.img already exists in IMAGES/, no need to rebuild..."
+ if OPTIONS.rebuild_recovery:
+ recovery_image = common.GetBootableImage(
+ "IMAGES/recovery.img", "recovery.img", OPTIONS.input_tmp, "RECOVERY")
+ else:
+ recovery_image = common.GetBootableImage(
+ "IMAGES/recovery.img", "recovery.img", OPTIONS.input_tmp, "RECOVERY")
+ if recovery_image:
+ recovery_image.AddToZip(output_zip)
banner("system")
- AddSystem(output_zip)
+ AddSystem(output_zip, recovery_img=recovery_image, boot_img=boot_image)
if has_vendor:
banner("vendor")
AddVendor(output_zip)
@@ -244,9 +295,24 @@
output_zip.close()
-
def main(argv):
- args = common.ParseOptions(argv, __doc__)
+
+ def option_handler(o, a):
+ if o in ("-a", "--add_missing"):
+ OPTIONS.add_missing = True
+ elif o in ("-r", "--rebuild_recovery",):
+ OPTIONS.rebuild_recovery = True
+ else:
+ return False
+ return True
+
+ args = common.ParseOptions(argv, __doc__,
+ extra_opts="ar",
+ extra_long_opts=["add_missing",
+ "rebuild_recovery",
+ ],
+ extra_option_handler=option_handler)
+
if len(args) != 1:
common.Usage(__doc__)
diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py
index e4b9252..7d318a3 100644
--- a/tools/releasetools/edify_generator.py
+++ b/tools/releasetools/edify_generator.py
@@ -323,6 +323,10 @@
"""Append text verbatim to the output script."""
self.script.append(extra)
+ def Unmount(self, mount_point):
+ self.script.append('unmount("%s");' % (mount_point,))
+ self.mounts.remove(mount_point);
+
def UnmountAll(self):
for p in sorted(self.mounts):
self.script.append('unmount("%s");' % (p,))
diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files
index 5cf9873..755e5c2 100755
--- a/tools/releasetools/ota_from_target_files
+++ b/tools/releasetools/ota_from_target_files
@@ -37,6 +37,10 @@
Generate an incremental OTA using the given target-files zip as
the starting build.
+ -v (--verify)
+ Remount and verify the checksums of the files written to the
+ system and vendor (if used) partitions. Incremental builds only.
+
-o (--oem_settings) <file>
Use the file to specify the expected OEM-specific properties
on the OEM partition of the intended device.
@@ -104,6 +108,7 @@
OPTIONS = common.OPTIONS
OPTIONS.package_key = None
OPTIONS.incremental_source = None
+OPTIONS.verify = False
OPTIONS.require_verbatim = set()
OPTIONS.prohibit_verbatim = set(("system/build.prop",))
OPTIONS.patch_threshold = 0.95
@@ -939,7 +944,7 @@
raise common.ExternalError("\"%s\" must be sent verbatim" % (fn,))
print "send", fn, "verbatim"
tf.AddToZip(output_zip)
- verbatim_targets.append((fn, tf.size))
+ verbatim_targets.append((fn, tf.size, tf.sha1))
if fn in target_data.keys():
AddToKnownPaths(fn, known_paths)
elif tf.sha1 != sf.sha1:
@@ -960,7 +965,7 @@
# or a patch + rename cannot take place due to the target
# directory not existing
tf.AddToZip(output_zip)
- verbatim_targets.append((tf.name, tf.size))
+ verbatim_targets.append((tf.name, tf.size, tf.sha1))
if sf.name in renames:
del renames[sf.name]
AddToKnownPaths(tf.name, known_paths)
@@ -980,6 +985,13 @@
so_far += sf.size
return so_far
+ def EmitExplicitTargetVerification(self, script):
+ for fn, size, sha1 in self.verbatim_targets:
+ if (fn[-1] != "/"):
+ script.FileCheck("/"+fn, sha1)
+ for tf, _, _, _ in self.patch_list:
+ script.FileCheck(tf.name, tf.sha1)
+
def RemoveUnneededFiles(self, script, extras=()):
script.DeleteFiles(["/"+i[0] for i in self.verbatim_targets] +
["/"+i for i in sorted(self.source_data)
@@ -1351,7 +1363,19 @@
endif;
""" % bcb_dev)
+ if OPTIONS.verify and system_diff:
+ script.Print("Remounting and verifying system partition files...")
+ script.Unmount("/system")
+ script.Mount("/system")
+ system_diff.EmitExplicitTargetVerification(script)
+
+ if OPTIONS.verify and vendor_diff:
+ script.Print("Remounting and verifying vendor partition files...")
+ script.Unmount("/vendor")
+ script.Mount("/vendor")
+ vendor_diff.EmitExplicitTargetVerification(script)
script.AddToZip(target_zip, output_zip, input_path=OPTIONS.updater_binary)
+
WriteMetadata(metadata, output_zip)
@@ -1387,6 +1411,8 @@
OPTIONS.two_step = True
elif o == "--no_signing":
OPTIONS.no_signing = True
+ elif o in ("--verify"):
+ OPTIONS.verify = True
elif o == "--block":
OPTIONS.block_based = True
elif o in ("-b", "--binary"):
@@ -1412,6 +1438,7 @@
"block",
"binary=",
"oem_settings=",
+ "verify",
"no_fallback_to_full",
],
extra_option_handler=option_handler)