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:
Doug Zongker 2009-09-30 09:20:32 -07:00
parent c3c136c4cd
commit c18736b1a7
3 changed files with 28 additions and 9 deletions

View File

@ -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) $@

View File

@ -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])

View File

@ -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