Merge "resolved conflicts for merge of 6da54b6e to master"
diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files
index aead38f..4264efa 100755
--- a/tools/releasetools/ota_from_target_files
+++ b/tools/releasetools/ota_from_target_files
@@ -613,7 +613,12 @@
so_far = 0
script.Print("Patching system files...")
- for fn, tf, sf, size, _ in patch_list:
+ deferred_patch_list = []
+ for item in patch_list:
+ fn, tf, sf, size, _ = item
+ if tf.name == "system/build.prop":
+ deferred_patch_list.append(item)
+ continue
script.ApplyPatch("/"+fn, "-", tf.size, tf.sha1, sf.sha1, "patch/"+fn+".p")
so_far += tf.size
script.SetProgress(so_far / total_patch_size)
@@ -715,6 +720,15 @@
if OPTIONS.extra_script is not None:
script.AppendExtra(OPTIONS.extra_script)
+ # Patch the build.prop file last, so if something fails but the
+ # device can still come up, it appears to be the old build and will
+ # get set the OTA package again to retry.
+ script.Print("Patching remaining system files...")
+ for item in deferred_patch_list:
+ fn, tf, sf, size, _ = item
+ script.ApplyPatch("/"+fn, "-", tf.size, tf.sha1, sf.sha1, "patch/"+fn+".p")
+ script.SetPermissions("/system/build.prop", 0, 0, 0644)
+
script.AddToZip(target_zip, output_zip)
WriteMetadata(metadata, output_zip)