Skip to content

Commit

Permalink
Supports build otapackage.
Browse files Browse the repository at this point in the history
  • Loading branch information
sola-dolphin1 committed May 22, 2013
1 parent 7e18fb8 commit 05a0139
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 50 deletions.
36 changes: 10 additions & 26 deletions core/Makefile
Expand Up @@ -342,17 +342,12 @@ INTERNAL_RAMDISK_FILES := $(filter $(TARGET_ROOT_OUT)/%, \

BUILT_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk.img

ifeq ($(HAVE_SELINUX),true)
SELINUX_DEPENDS := sepolicy file_contexts seapp_contexts
endif

# We just build this directly to the install location.
INSTALLED_RAMDISK_TARGET := $(BUILT_RAMDISK_TARGET)
$(INSTALLED_RAMDISK_TARGET): $(MKBOOTFS) $(INTERNAL_RAMDISK_FILES) $(SELINUX_DEPENDS) | $(MINIGZIP)
$(INSTALLED_RAMDISK_TARGET): $(MKBOOTFS) $(INTERNAL_RAMDISK_FILES) | $(MINIGZIP)
$(call pretty,"Target ram disk: $@")
$(hide) $(MKBOOTFS) $(TARGET_ROOT_OUT) | $(MINIGZIP) > $@


ifneq ($(strip $(TARGET_NO_KERNEL)),true)

# -----------------------------------------------------------------
Expand Down Expand Up @@ -616,11 +611,8 @@ INTERNAL_USERIMAGES_BINARY_PATHS := $(sort $(dir $(INTERNAL_USERIMAGES_DEPS)))
# $(5): size of the partition
define build-userimage-ext-target
@mkdir -p $(dir $(2))
$(if $(filter true, $(strip $(HAVE_SELINUX))), \
$(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \
$(MKEXTUSERIMG) $(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG) $(1) $(2) $(4) $(3) $(5) $(TARGET_ROOT_OUT)/file_contexts, \
$(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \
$(MKEXTUSERIMG) $(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG) $(1) $(2) $(4) $(3) $(5))
$(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \
$(MKEXTUSERIMG) $(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG) $(1) $(2) $(4) $(3) $(5)
endef
else
INTERNAL_USERIMAGES_DEPS := $(MKYAFFS2)
Expand Down Expand Up @@ -678,7 +670,7 @@ OTA_PUBLIC_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE).x509.pem
# Generate a file containing the keys that will be read by the
# recovery binary.
#RECOVERY_INSTALL_OTA_KEYS := \
$(call intermediates-dir-for,PACKAGING,ota_keys)/keys
# $(call intermediates-dir-for,PACKAGING,ota_keys)/keys
#DUMPKEY_JAR := $(HOST_OUT_JAVA_LIBRARIES)/dumpkey.jar
#$(RECOVERY_INSTALL_OTA_KEYS): PRIVATE_OTA_PUBLIC_KEYS := $(OTA_PUBLIC_KEYS)
#$(RECOVERY_INSTALL_OTA_KEYS): extra_keys := $(patsubst %,%.x509.pem,$(PRODUCT_EXTRA_RECOVERY_KEYS))
Expand Down Expand Up @@ -794,9 +786,7 @@ else # INTERNAL_USERIMAGES_USE_EXT != true
define build-systemimage-target
@echo "Target system fs image: $(1)"
@mkdir -p $(dir $(1))
$(if $(filter true, $(strip $(HAVE_SELINUX))), \
$(hide) $(MKYAFFS2) -f $(mkyaffs2_extra_flags) $(TARGET_OUT) $(1) $(TARGET_ROOT_OUT)/file_contexts /system, \
$(hide) $(MKYAFFS2) -f $(mkyaffs2_extra_flags) $(TARGET_OUT) $(1))
$(hide) $(MKYAFFS2) -f $(mkyaffs2_extra_flags) $(TARGET_OUT) $(1)
endef
endif # INTERNAL_USERIMAGES_USE_EXT

Expand Down Expand Up @@ -920,9 +910,7 @@ else # INTERNAL_USERIMAGES_USE_EXT != true
define build-userdataimage-target
$(call pretty,"Target userdata fs image: $(INSTALLED_USERDATAIMAGE_TARGET)")
@mkdir -p $(TARGET_OUT_DATA)
$(if $(filter true, $(strip $(HAVE_SELINUX))), \
$(hide) $(MKYAFFS2) -f $(mkyaffs2_extra_flags) $(TARGET_OUT_DATA) $(INSTALLED_USERDATAIMAGE_TARGET) $(TARGET_ROOT_OUT)/file_contexts /data, \
$(hide) $(MKYAFFS2) -f $(mkyaffs2_extra_flags) $(TARGET_OUT_DATA) $(INSTALLED_USERDATAIMAGE_TARGET))
$(hide) $(MKYAFFS2) -f $(mkyaffs2_extra_flags) $(TARGET_OUT_DATA) $(INSTALLED_USERDATAIMAGE_TARGET)
$(hide) $(call assert-max-image-size,$(INSTALLED_USERDATAIMAGE_TARGET),$(BOARD_USERDATAIMAGE_PARTITION_SIZE),yaffs)
endef
endif # INTERNAL_USERIMAGES_USE_EXT
Expand Down Expand Up @@ -978,8 +966,6 @@ OTATOOLS := $(HOST_OUT_EXECUTABLES)/minigzip \
$(HOST_OUT_EXECUTABLES)/aapt \
$(HOST_OUT_EXECUTABLES)/bsdiff \
$(HOST_OUT_EXECUTABLES)/imgdiff \
$(HOST_OUT_JAVA_LIBRARIES)/dumpkey.jar \
$(HOST_OUT_JAVA_LIBRARIES)/signapk.jar \
$(HOST_OUT_EXECUTABLES)/mkuserimg.sh \
$(HOST_OUT_EXECUTABLES)/genext2fs \
$(HOST_OUT_EXECUTABLES)/tune2fs \
Expand Down Expand Up @@ -1164,13 +1150,12 @@ INTERNAL_OTA_PACKAGE_TARGET := $(PRODUCT_OUT)/$(name).zip

$(INTERNAL_OTA_PACKAGE_TARGET): KEY_CERT_PAIR := $(DEFAULT_KEY_CERT_PAIR)

$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(OTATOOLS) $(SELINUX_DEPENDS)
$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(OTATOOLS)
@echo "Package OTA: $@"
$(hide) ./build/tools/releasetools/ota_from_target_files -v \
$(if $(filter true, $(strip $(HAVE_SELINUX))),-S $(TARGET_ROOT_OUT)/file_contexts) \
-p $(HOST_OUT) \
-k $(KEY_CERT_PAIR) \
$(BUILT_TARGET_FILES_PACKAGE) $@
-k $(KEY_CERT_PAIR) \
$(BUILT_TARGET_FILES_PACKAGE) $@

.PHONY: otapackage
otapackage: $(INTERNAL_OTA_PACKAGE_TARGET)
Expand All @@ -1193,12 +1178,11 @@ else
$(INTERNAL_UPDATE_PACKAGE_TARGET): extensions := $(TARGET_RELEASETOOLS_EXTENSIONS)
endif

$(INTERNAL_UPDATE_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(OTATOOLS) $(SELINUX_DEPENDS)
$(INTERNAL_UPDATE_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(OTATOOLS)
@echo "Package: $@"
$(hide) ./build/tools/releasetools/img_from_target_files -v \
-s $(extensions) \
-p $(HOST_OUT) \
$(if $(filter true, $(strip $(HAVE_SELINUX))),-S $(TARGET_ROOT_OUT)/file_contexts) \
$(BUILT_TARGET_FILES_PACKAGE) $@

.PHONY: updatepackage
Expand Down
4 changes: 2 additions & 2 deletions tools/releasetools/edify_generator.py
Expand Up @@ -165,9 +165,9 @@ def FormatPartition(self, partition):
fstab = self.info.get("fstab", None)
if fstab:
p = fstab[partition]
self.script.append('format("%s", "%s", "%s", "%s", "%s");' %
self.script.append('format("%s", "%s", "%s", "%s");' %
(p.fs_type, common.PARTITION_TYPES[p.fs_type],
p.device, p.length, p.mount_point))
p.device, p.length))

def DeleteFiles(self, file_list):
"""Delete all files in file_list."""
Expand Down
45 changes: 23 additions & 22 deletions tools/releasetools/ota_from_target_files
Expand Up @@ -313,9 +313,9 @@ def SignOutput(temp_zip_name, output_zip_name):
whole_file=True)


def AppendAssertions(script, input_zip):
device = GetBuildProp("ro.product.device", input_zip)
script.AssertDevice(device)
#def AppendAssertions(script, input_zip):
# device = GetBuildProp("ro.product.device", input_zip)
# script.AssertDevice(device)


def MakeRecoveryPatch(output_zip, recovery_img, boot_img):
Expand Down Expand Up @@ -382,12 +382,12 @@ def WriteFullOTAPackage(input_zip, output_zip):
metadata=metadata,
info_dict=OPTIONS.info_dict)

if not OPTIONS.omit_prereq:
ts = GetBuildProp("ro.build.date.utc", input_zip)
script.AssertOlderBuild(ts)
# if not OPTIONS.omit_prereq:
# ts = GetBuildProp("ro.build.date.utc", input_zip)
# script.AssertOlderBuild(ts)

AppendAssertions(script, input_zip)
device_specific.FullOTA_Assertions()
# AppendAssertions(script, input_zip)
# device_specific.FullOTA_Assertions()

script.ShowProgress(0.5, 0)

Expand All @@ -399,7 +399,7 @@ def WriteFullOTAPackage(input_zip, output_zip):

script.FormatPartition("/system")
script.Mount("/system")
script.UnpackPackageDir("recovery", "/system")
# script.UnpackPackageDir("recovery", "/system")
script.UnpackPackageDir("system", "/system")

(symlinks, retouch_files) = CopySystemFiles(input_zip, output_zip)
Expand All @@ -411,9 +411,9 @@ def WriteFullOTAPackage(input_zip, output_zip):

boot_img = common.GetBootableImage("boot.img", "boot.img",
OPTIONS.input_tmp, "BOOT")
recovery_img = common.GetBootableImage("recovery.img", "recovery.img",
OPTIONS.input_tmp, "RECOVERY")
MakeRecoveryPatch(output_zip, recovery_img, boot_img)
# recovery_img = common.GetBootableImage("recovery.img", "recovery.img",
# OPTIONS.input_tmp, "RECOVERY")
# MakeRecoveryPatch(output_zip, recovery_img, boot_img)

Item.GetMetadata(input_zip)
Item.Get("system").SetPermissions(script)
Expand Down Expand Up @@ -553,20 +553,21 @@ def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip):
"/tmp/boot.img", "boot.img", OPTIONS.target_tmp, "BOOT")
updating_boot = (source_boot.data != target_boot.data)

source_recovery = common.GetBootableImage(
"/tmp/recovery.img", "recovery.img", OPTIONS.source_tmp, "RECOVERY")
target_recovery = common.GetBootableImage(
"/tmp/recovery.img", "recovery.img", OPTIONS.target_tmp, "RECOVERY")
updating_recovery = (source_recovery.data != target_recovery.data)
# source_recovery = common.GetBootableImage(
# "/tmp/recovery.img", "recovery.img", OPTIONS.source_tmp, "RECOVERY")
# target_recovery = common.GetBootableImage(
# "/tmp/recovery.img", "recovery.img", OPTIONS.target_tmp, "RECOVERY")
# updating_recovery = (source_recovery.data != target_recovery.data)
updating_recovery = false

# Here's how we divide up the progress bar:
# 0.1 for verifying the start state (PatchCheck calls)
# 0.8 for applying patches (ApplyPatch calls)
# 0.1 for unpacking verbatim files, symlinking, and doing the
# device-specific commands.

AppendAssertions(script, target_zip)
device_specific.IncrementalOTA_Assertions()
# AppendAssertions(script, target_zip)
# device_specific.IncrementalOTA_Assertions()

script.Print("Verifying current system...")

Expand Down Expand Up @@ -696,9 +697,9 @@ def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip):
script.Print("Unpacking new files...")
script.UnpackPackageDir("system", "/system")

if updating_recovery:
script.Print("Unpacking new recovery...")
script.UnpackPackageDir("recovery", "/system")
# if updating_recovery:
# script.Print("Unpacking new recovery...")
# script.UnpackPackageDir("recovery", "/system")

script.Print("Symlinks and permissions...")

Expand Down

0 comments on commit 05a0139

Please sign in to comment.