add -w option to ota_from_target_files
Add option to make OTA packages that wipe user data.
This commit is contained in:
@@ -33,6 +33,10 @@ Usage: ota_from_target_files [flags] input_target_files output_ota_package
|
||||
Generate an incremental OTA using the given target-files zip as
|
||||
the starting build.
|
||||
|
||||
-w (--wipe_user_data)
|
||||
Generate an OTA package that will wipe the user data partition
|
||||
when installed.
|
||||
|
||||
"""
|
||||
|
||||
import sys
|
||||
@@ -58,6 +62,7 @@ OPTIONS.incremental_source = None
|
||||
OPTIONS.require_verbatim = set()
|
||||
OPTIONS.prohibit_verbatim = set(("system/build.prop",))
|
||||
OPTIONS.patch_threshold = 0.95
|
||||
OPTIONS.wipe_user_data = False
|
||||
|
||||
def MostPopularKey(d, default):
|
||||
"""Given a dict, return the key corresponding to the largest
|
||||
@@ -331,6 +336,9 @@ def WriteFullOTAPackage(input_zip, output_zip):
|
||||
script.append("write_radio_image PACKAGE:radio.img")
|
||||
script.append("show_progress 0.5 0")
|
||||
|
||||
if OPTIONS.wipe_user_data:
|
||||
script.append("format DATA:")
|
||||
|
||||
script.append("format SYSTEM:")
|
||||
script.append("copy_dir PACKAGE:system SYSTEM:")
|
||||
|
||||
@@ -511,6 +519,9 @@ def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip):
|
||||
|
||||
script.append("\n# ---- start making changes here\n")
|
||||
|
||||
if OPTIONS.wipe_user_data:
|
||||
script.append("format DATA:")
|
||||
|
||||
DeleteFiles(script, [SubstituteRoot(i[0]) for i in verbatim_targets])
|
||||
|
||||
if updating_boot:
|
||||
@@ -602,21 +613,22 @@ def main(argv):
|
||||
def option_handler(o, a):
|
||||
if o in ("-b", "--board_config"):
|
||||
common.LoadBoardConfig(a)
|
||||
return True
|
||||
elif o in ("-k", "--package_key"):
|
||||
OPTIONS.package_key = a
|
||||
return True
|
||||
elif o in ("-i", "--incremental_from"):
|
||||
OPTIONS.incremental_source = a
|
||||
return True
|
||||
elif o in ("-w", "--wipe_user_data"):
|
||||
OPTIONS.wipe_user_data = True
|
||||
else:
|
||||
return False
|
||||
return True
|
||||
|
||||
args = common.ParseOptions(argv, __doc__,
|
||||
extra_opts="b:k:i:d:",
|
||||
extra_opts="b:k:i:d:w",
|
||||
extra_long_opts=["board_config=",
|
||||
"package_key=",
|
||||
"incremental_from="],
|
||||
"incremental_from=",
|
||||
"wipe_user_data"],
|
||||
extra_option_handler=option_handler)
|
||||
|
||||
if len(args) != 2:
|
||||
|
Reference in New Issue
Block a user