releasetools: Allow logging the diff for incrementals.
Add an option "--log_diff <filename>" to ota_from_target_files.py
script. When enabled, it logs the differences between the source
and target builds into <filename> when generating incremental OTAs.
Also move target_files_diff.py into releasetools/ so that it can be
packed into otatools.zip.
Bug: 25372309
Change-Id: Ifd4ed0f2f12ef040ee377621ec8c35a873cec34f
diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py
index fd57b93..1b279e5 100755
--- a/tools/releasetools/ota_from_target_files.py
+++ b/tools/releasetools/ota_from_target_files.py
@@ -94,6 +94,11 @@
--gen_verify
Generate an OTA package that verifies the partitions.
+
+ --log_diff <file>
+ Generate a log file that shows the differences in the source and target
+ builds for an incremental package. This option is only meaningful when
+ -i is specified.
"""
import sys
@@ -137,6 +142,7 @@
OPTIONS.cache_size = None
OPTIONS.stash_threshold = 0.8
OPTIONS.gen_verify = False
+OPTIONS.log_diff = None
def MostPopularKey(d, default):
"""Given a dict, return the key corresponding to the largest
@@ -1631,6 +1637,8 @@
"a float" % (a, o))
elif o == "--gen_verify":
OPTIONS.gen_verify = True
+ elif o == "--log_diff":
+ OPTIONS.log_diff = a
else:
return False
return True
@@ -1656,7 +1664,8 @@
"verify",
"no_fallback_to_full",
"stash_threshold=",
- "gen_verify"
+ "gen_verify",
+ "log_diff=",
], extra_option_handler=option_handler)
if len(args) != 2:
@@ -1743,6 +1752,14 @@
common.DumpInfoDict(OPTIONS.source_info_dict)
try:
WriteIncrementalOTAPackage(input_zip, source_zip, output_zip)
+ if OPTIONS.log_diff:
+ out_file = open(OPTIONS.log_diff, 'w')
+ import target_files_diff
+ target_files_diff.recursiveDiff('',
+ OPTIONS.source_tmp,
+ OPTIONS.input_tmp,
+ out_file)
+ out_file.close()
except ValueError:
if not OPTIONS.fallback_to_full:
raise
diff --git a/tools/target_files_diff.py b/tools/releasetools/target_files_diff.py
similarity index 100%
rename from tools/target_files_diff.py
rename to tools/releasetools/target_files_diff.py