forked from openkylin/platform_build
remember device-specific releasetools extensions in target-files
Store the location of the releasetools extensions in the target-files zip, and make ota_from_target_files use that stored location by default (though it can still be overridden with -s if desired).
This commit is contained in:
parent
c3c136c4cd
commit
c18736b1a7
|
@ -814,6 +814,13 @@ $(BUILT_TARGET_FILES_PACKAGE): PRIVATE_OTA_TOOLS := $(built_ota_tools)
|
|||
|
||||
$(BUILT_TARGET_FILES_PACKAGE): PRIVATE_RECOVERY_API_VERSION := $(RECOVERY_API_VERSION)
|
||||
|
||||
ifeq ($(TARGET_RELEASETOOLS_EXTENSIONS),)
|
||||
# default to common dir for device vendor
|
||||
$(BUILT_TARGET_FILES_PACKAGE): tool_extensions := $(TARGET_DEVICE_DIR)/../common
|
||||
else
|
||||
$(BUILT_TARGET_FILES_PACKAGE): tool_extensions := $(TARGET_RELEASETOOLS_EXTENSIONS)
|
||||
endif
|
||||
|
||||
# Depending on the various images guarantees that the underlying
|
||||
# directories are up-to-date.
|
||||
$(BUILT_TARGET_FILES_PACKAGE): \
|
||||
|
@ -887,6 +894,7 @@ endif
|
|||
$(hide) echo "recovery $(call image-size-from-data-size,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE))" >> $(zip_root)/META/imagesizes.txt
|
||||
$(hide) echo "system $(call image-size-from-data-size,$(BOARD_SYSTEMIMAGE_PARTITION_SIZE))" >> $(zip_root)/META/imagesizes.txt
|
||||
$(hide) echo "userdata $(call image-size-from-data-size,$(BOARD_USERDATAIMAGE_PARTITION_SIZE))" >> $(zip_root)/META/imagesizes.txt
|
||||
$(hide) echo "$(tool_extensions)" > $(zip_root)/META/tool-extensions.txt
|
||||
@# Zip everything up, preserving symlinks
|
||||
$(hide) (cd $(zip_root) && zip -qry ../$(notdir $@) .)
|
||||
|
||||
|
@ -909,13 +917,6 @@ INTERNAL_OTA_PACKAGE_TARGET := $(PRODUCT_OUT)/$(name).zip
|
|||
|
||||
$(INTERNAL_OTA_PACKAGE_TARGET): KEY_CERT_PAIR := $(DEFAULT_KEY_CERT_PAIR)
|
||||
|
||||
ifeq ($(TARGET_RELEASETOOLS_EXTENSIONS),)
|
||||
# default to common dir for device vendor
|
||||
$(INTERNAL_OTA_PACKAGE_TARGET): extensions := $(TARGET_DEVICE_DIR)/../common
|
||||
else
|
||||
$(INTERNAL_OTA_PACKAGE_TARGET): extensions := $(TARGET_RELEASETOOLS_EXTENSIONS)
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_OTA_SCRIPT_MODE),)
|
||||
# default to "auto"
|
||||
$(INTERNAL_OTA_PACKAGE_TARGET): scriptmode := auto
|
||||
|
@ -926,7 +927,7 @@ endif
|
|||
$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) otatools
|
||||
@echo "Package OTA: $@"
|
||||
$(hide) ./build/tools/releasetools/ota_from_target_files \
|
||||
-s $(extensions) -m $(scriptmode) \
|
||||
-m $(scriptmode) \
|
||||
-p $(HOST_OUT) \
|
||||
-k $(KEY_CERT_PAIR) \
|
||||
$(BUILT_TARGET_FILES_PACKAGE) $@
|
||||
|
|
|
@ -440,7 +440,7 @@ class DeviceSpecificParams(object):
|
|||
|
||||
if self.module is None:
|
||||
path = OPTIONS.device_specific
|
||||
if path is None: return
|
||||
if not path: return
|
||||
try:
|
||||
if os.path.isdir(path):
|
||||
info = imp.find_module("releasetools", [path])
|
||||
|
|
|
@ -57,6 +57,7 @@ if sys.hexversion < 0x02040000:
|
|||
sys.exit(1)
|
||||
|
||||
import copy
|
||||
import errno
|
||||
import os
|
||||
import re
|
||||
import sha
|
||||
|
@ -855,6 +856,23 @@ def main(argv):
|
|||
print "unzipping target target-files..."
|
||||
OPTIONS.input_tmp = common.UnzipTemp(args[0])
|
||||
|
||||
if OPTIONS.device_specific is None:
|
||||
# look for the device-specific tools extension location in the input
|
||||
try:
|
||||
f = open(os.path.join(OPTIONS.input_tmp, "META", "tool-extensions.txt"))
|
||||
ds = f.read().strip()
|
||||
f.close()
|
||||
if ds:
|
||||
ds = os.path.normpath(ds)
|
||||
print "using device-specific extensions in", ds
|
||||
OPTIONS.device_specific = ds
|
||||
except IOError, e:
|
||||
if e.errno == errno.ENOENT:
|
||||
# nothing specified in the file
|
||||
pass
|
||||
else:
|
||||
raise
|
||||
|
||||
common.LoadMaxSizes()
|
||||
if not OPTIONS.max_image_size:
|
||||
print
|
||||
|
|
Loading…
Reference in New Issue