resolve merge conflicts of 3f7c348
to nyc-mr1-dev-plus-aosp
Bug: 29278988 Change-Id: Icffb9a280311c7d3c45f096243ddf18f7ebecd9d
This commit is contained in:
commit
a3e8e9c6f3
|
@ -374,6 +374,10 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
|
|||
# $(PRODUCT_OUT)/recovery/root/sdcard goes from symlink to folder.
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/sdcard)
|
||||
|
||||
# Add BOARD_USES_SYSTEM_OTHER_ODEX
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/*)
|
||||
|
||||
# ************************************************
|
||||
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
|
||||
# ************************************************
|
||||
|
|
|
@ -1494,6 +1494,59 @@ IGNORE_CACHE_LINK := --exclude=cache
|
|||
endif # BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE
|
||||
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# system_other partition image
|
||||
ifeq ($(BOARD_USES_SYSTEM_OTHER_ODEX),true)
|
||||
BOARD_USES_SYSTEM_OTHER := true
|
||||
|
||||
# Marker file to identify that odex files are installed
|
||||
INSTALLED_SYSTEM_OTHER_ODEX_MARKER := $(TARGET_OUT_SYSTEM_OTHER)/system-other-odex-marker
|
||||
ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_SYSTEM_OTHER_ODEX_MARKER)
|
||||
$(INSTALLED_SYSTEM_OTHER_ODEX_MARKER):
|
||||
$(hide) touch $@
|
||||
endif
|
||||
|
||||
ifdef BOARD_USES_SYSTEM_OTHER
|
||||
INTERNAL_SYSTEMOTHERIMAGE_FILES := \
|
||||
$(filter $(TARGET_OUT_SYSTEM_OTHER)/%,\
|
||||
$(ALL_DEFAULT_INSTALLED_MODULES)\
|
||||
$(ALL_PDK_FUSION_FILES))
|
||||
|
||||
INSTALLED_FILES_FILE_SYSTEMOTHER := $(PRODUCT_OUT)/installed-files-system-other.txt
|
||||
$(INSTALLED_FILES_FILE_SYSTEMOTHER) : $(INTERNAL_SYSTEMOTHERIMAGE_FILES)
|
||||
@echo Installed file list: $@
|
||||
@mkdir -p $(dir $@)
|
||||
@rm -f $@
|
||||
$(hide) build/tools/fileslist.py $(TARGET_OUT_SYSTEM_OTHER) > $@
|
||||
|
||||
systemotherimage_intermediates := \
|
||||
$(call intermediates-dir-for,PACKAGING,system_other)
|
||||
BUILT_SYSTEMOTHERIMAGE_TARGET := $(PRODUCT_OUT)/system_other.img
|
||||
|
||||
# Note that we assert the size is SYSTEMIMAGE_PARTITION_SIZE since this is the 'b' system image.
|
||||
define build-systemotherimage-target
|
||||
$(call pretty,"Target system_other fs image: $(INSTALLED_SYSTEMOTHERIMAGE_TARGET)")
|
||||
@mkdir -p $(TARGET_OUT_SYSTEM_OTHER)
|
||||
@mkdir -p $(systemotherimage_intermediates) && rm -rf $(systemotherimage_intermediates)/system_other_image_info.txt
|
||||
$(call generate-userimage-prop-dictionary, $(systemotherimage_intermediates)/system_other_image_info.txt, skip_fsck=true)
|
||||
$(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \
|
||||
./build/tools/releasetools/build_image.py \
|
||||
$(TARGET_OUT_SYSTEM_OTHER) $(systemotherimage_intermediates)/system_other_image_info.txt $(INSTALLED_SYSTEMOTHERIMAGE_TARGET) $(TARGET_OUT)
|
||||
$(hide) $(call assert-max-image-size,$(INSTALLED_SYSTEMOTHERIMAGE_TARGET),$(BOARD_SYSTEMIMAGE_PARTITION_SIZE))
|
||||
endef
|
||||
|
||||
# We just build this directly to the install location.
|
||||
INSTALLED_SYSTEMOTHERIMAGE_TARGET := $(BUILT_SYSTEMOTHERIMAGE_TARGET)
|
||||
$(INSTALLED_SYSTEMOTHERIMAGE_TARGET): $(INTERNAL_USERIMAGES_DEPS) $(INTERNAL_SYSTEMOTHERIMAGE_FILES) $(INSTALLED_FILES_FILE_SYSTEMOTHER)
|
||||
$(build-systemotherimage-target)
|
||||
|
||||
.PHONY: systemotherimage-nodeps
|
||||
systemotherimage-nodeps: | $(INTERNAL_USERIMAGES_DEPS)
|
||||
$(build-systemotherimage-target)
|
||||
|
||||
endif # BOARD_USES_SYSTEM_OTHER
|
||||
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# vendor partition image
|
||||
ifdef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE
|
||||
|
@ -1730,6 +1783,7 @@ $(BUILT_TARGET_FILES_PACKAGE): \
|
|||
$(INSTALLED_USERDATAIMAGE_TARGET) \
|
||||
$(INSTALLED_CACHEIMAGE_TARGET) \
|
||||
$(INSTALLED_VENDORIMAGE_TARGET) \
|
||||
$(INSTALLED_SYSTEMOTHERIMAGE_TARGET) \
|
||||
$(INSTALLED_ANDROID_INFO_TXT_TARGET) \
|
||||
$(SELINUX_FC) \
|
||||
$(APKCERTS_FILE) \
|
||||
|
@ -1803,6 +1857,11 @@ ifdef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE
|
|||
@# Contents of the vendor image
|
||||
$(hide) $(call package_files-copy-root, \
|
||||
$(TARGET_OUT_VENDOR),$(zip_root)/VENDOR)
|
||||
endif
|
||||
ifdef INSTALLED_SYSTEMOTHERIMAGE_TARGET
|
||||
@# Contents of the system_other image
|
||||
$(hide) $(call package_files-copy-root, \
|
||||
$(TARGET_OUT_SYSTEM_OTHER),$(zip_root)/SYSTEM_OTHER)
|
||||
endif
|
||||
@# Extra contents of the OTA package
|
||||
$(hide) mkdir -p $(zip_root)/OTA
|
||||
|
@ -1950,6 +2009,9 @@ endif
|
|||
$(hide) zipinfo -1 $@ | awk 'BEGIN { FS="BOOT/RAMDISK/" } /^BOOT\/RAMDISK\// {print $$2}' | $(HOST_OUT_EXECUTABLES)/fs_config -C -D $(TARGET_OUT) -S $(SELINUX_FC) > $(zip_root)/META/boot_filesystem_config.txt
|
||||
ifneq ($(INSTALLED_RECOVERYIMAGE_TARGET),)
|
||||
$(hide) zipinfo -1 $@ | awk 'BEGIN { FS="RECOVERY/RAMDISK/" } /^RECOVERY\/RAMDISK\// {print $$2}' | $(HOST_OUT_EXECUTABLES)/fs_config -C -D $(TARGET_OUT) -S $(SELINUX_FC) > $(zip_root)/META/recovery_filesystem_config.txt
|
||||
endif
|
||||
ifdef INSTALLED_SYSTEMOTHERIMAGE_TARGET
|
||||
$(hide) zipinfo -1 $@ | awk 'BEGIN { FS="SYSTEM_OTHER/" } /^SYSTEM_OTHER\// { print "system/" $$2}' | $(HOST_OUT_EXECUTABLES)/fs_config -C -D $(TARGET_OUT) -S $(SELINUX_FC) > $(zip_root)/META/system_other_filesystem_config.txt
|
||||
endif
|
||||
$(hide) (cd $(zip_root) && zip -qX ../$(notdir $@) META/*filesystem_config.txt)
|
||||
$(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH MKBOOTIMG=$(MKBOOTIMG) \
|
||||
|
|
|
@ -242,6 +242,7 @@ installclean_files := \
|
|||
$(PRODUCT_OUT)/recovery \
|
||||
$(PRODUCT_OUT)/root \
|
||||
$(PRODUCT_OUT)/system \
|
||||
$(PRODUCT_OUT)/system_other \
|
||||
$(PRODUCT_OUT)/vendor \
|
||||
$(PRODUCT_OUT)/oem \
|
||||
$(PRODUCT_OUT)/dex_bootjars \
|
||||
|
|
|
@ -19,6 +19,10 @@ DEXPREOPT_BOOT_JAR_DIR_FULL_PATH := $(DEXPREOPT_PRODUCT_DIR_FULL_PATH)/$(DEXPREO
|
|||
# The default value for LOCAL_DEX_PREOPT
|
||||
DEX_PREOPT_DEFAULT ?= true
|
||||
|
||||
# The default filter for which files go into the system_other image (if it is
|
||||
# being used). To bundle everything one should set this to '%'
|
||||
SYSTEM_OTHER_ODEX_FILTER ?= app/% priv-app/%
|
||||
|
||||
# The default values for pre-opting: always preopt PIC.
|
||||
# Conditional to building on linux, as dex2oat currently does not work on darwin.
|
||||
ifeq ($(HOST_OS),linux)
|
||||
|
|
|
@ -59,6 +59,21 @@ define get-odex-file-path
|
|||
$(dir $(2))oat/$(1)/$(basename $(notdir $(2))).odex
|
||||
endef
|
||||
|
||||
# Returns the full path to the installed .odex file.
|
||||
# This handles BOARD_USES_SYSTEM_OTHER_ODEX to install odex files into another
|
||||
# partition.
|
||||
# $(1): the arch name.
|
||||
# $(2): the full install path (including file name) of the corresponding .apk.
|
||||
ifeq ($(BOARD_USES_SYSTEM_OTHER_ODEX),true)
|
||||
define get-odex-installed-file-path
|
||||
$(if $(filter $(foreach f,$(SYSTEM_OTHER_ODEX_FILTER),$(TARGET_OUT)/$(f)),$(2)),
|
||||
$(call get-odex-file-path,$(1),$(patsubst $(TARGET_OUT)/%,$(TARGET_OUT_SYSTEM_OTHER)/%,$(2))),
|
||||
$(call get-odex-file-path,$(1),$(2)))
|
||||
endef
|
||||
else
|
||||
get-odex-installed-file-path = $(get-odex-file-path)
|
||||
endif
|
||||
|
||||
# Returns the path to the image file (such as "/system/framework/<arch>/boot.art"
|
||||
# $(1): the arch name (such as "arm")
|
||||
# $(2): the image location (such as "/system/framework/boot.art")
|
||||
|
|
|
@ -39,6 +39,14 @@ ifeq ($(filter $(DEXPREOPT_BOOT_JARS_MODULES),$(LOCAL_MODULE)),)
|
|||
LOCAL_DEX_PREOPT :=
|
||||
endif
|
||||
endif
|
||||
# if installing into system, and odex are being installed into system_other, don't strip
|
||||
ifeq ($(BOARD_USES_SYSTEM_OTHER_ODEX),true)
|
||||
ifeq ($(LOCAL_DEX_PREOPT),true)
|
||||
ifneq ($(filter $(foreach f,$(SYSTEM_OTHER_ODEX_FILTER),$(TARGET_OUT)/$(f)),$(my_module_path)),)
|
||||
LOCAL_DEX_PREOPT := nostripping
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
built_odex :=
|
||||
installed_odex :=
|
||||
|
@ -102,13 +110,6 @@ endif
|
|||
endif
|
||||
|
||||
$(built_odex): PRIVATE_DEX_PREOPT_FLAGS := $(LOCAL_DEX_PREOPT_FLAGS)
|
||||
|
||||
# Use pattern rule - we may have multiple installed odex files.
|
||||
# Ugly syntax - See the definition get-odex-file-path.
|
||||
$(installed_odex) : $(dir $(LOCAL_INSTALLED_MODULE))%$(notdir $(word 1,$(installed_odex))) \
|
||||
: $(dir $(LOCAL_BUILT_MODULE))%$(notdir $(word 1,$(built_odex)))
|
||||
@echo "Install: $@"
|
||||
$(copy-file-to-target)
|
||||
endif
|
||||
|
||||
# Add the installed_odex to the list of installed files for this module.
|
||||
|
|
|
@ -110,6 +110,7 @@ HOST_PREBUILT_TAG := $(BUILD_OS)-$(HOST_PREBUILT_ARCH)
|
|||
# TARGET_COPY_OUT_* are all relative to the staging directory, ie PRODUCT_OUT.
|
||||
# Define them here so they can be used in product config files.
|
||||
TARGET_COPY_OUT_SYSTEM := system
|
||||
TARGET_COPY_OUT_SYSTEM_OTHER := system_other
|
||||
TARGET_COPY_OUT_DATA := data
|
||||
TARGET_COPY_OUT_OEM := oem
|
||||
TARGET_COPY_OUT_ODM := odm
|
||||
|
@ -344,6 +345,8 @@ TARGET_OUT_ETC := $(TARGET_OUT)/etc
|
|||
TARGET_OUT_NOTICE_FILES := $(TARGET_OUT_INTERMEDIATES)/NOTICE_FILES
|
||||
TARGET_OUT_FAKE := $(PRODUCT_OUT)/fake_packages
|
||||
|
||||
TARGET_OUT_SYSTEM_OTHER := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM_OTHER)
|
||||
|
||||
# Out for TARGET_2ND_ARCH
|
||||
TARGET_2ND_ARCH_VAR_PREFIX := $(HOST_2ND_ARCH_VAR_PREFIX)
|
||||
ifeq ($(TARGET_TRANSLATE_2ND_ARCH),true)
|
||||
|
|
|
@ -79,6 +79,7 @@ dont_bother_goals := clean clobber dataclean installclean \
|
|||
cacheimage-nodeps \
|
||||
bptimage-nodeps \
|
||||
vendorimage-nodeps \
|
||||
systemotherimage-nodeps \
|
||||
ramdisk-nodeps \
|
||||
bootimage-nodeps \
|
||||
recoveryimage-nodeps \
|
||||
|
@ -912,6 +913,9 @@ bptimage: $(INSTALLED_BPTIMAGE_TARGET)
|
|||
.PHONY: vendorimage
|
||||
vendorimage: $(INSTALLED_VENDORIMAGE_TARGET)
|
||||
|
||||
.PHONY: systemotherimage
|
||||
systemotherimage: $(INSTALLED_SYSTEMOTHERIMAGE_TARGET)
|
||||
|
||||
.PHONY: bootimage
|
||||
bootimage: $(INSTALLED_BOOTIMAGE_TARGET)
|
||||
|
||||
|
@ -940,8 +944,10 @@ droidcore: files \
|
|||
$(INSTALLED_CACHEIMAGE_TARGET) \
|
||||
$(INSTALLED_BPTIMAGE_TARGET) \
|
||||
$(INSTALLED_VENDORIMAGE_TARGET) \
|
||||
$(INSTALLED_SYSTEMOTHERIMAGE_TARGET) \
|
||||
$(INSTALLED_FILES_FILE) \
|
||||
$(INSTALLED_FILES_FILE_VENDOR)
|
||||
$(INSTALLED_FILES_FILE_VENDOR) \
|
||||
$(INSTALLED_FILES_FILE_SYSTEMOTHER)
|
||||
|
||||
# dist_files only for putting your library into the dist directory with a full build.
|
||||
.PHONY: dist_files
|
||||
|
@ -1002,6 +1008,7 @@ else # TARGET_BUILD_APPS
|
|||
$(SYMBOLS_ZIP) \
|
||||
$(INSTALLED_FILES_FILE) \
|
||||
$(INSTALLED_FILES_FILE_VENDOR) \
|
||||
$(INSTALLED_FILES_FILE_SYSTEMOTHER) \
|
||||
$(INSTALLED_BUILD_PROP_TARGET) \
|
||||
$(BUILT_TARGET_FILES_PACKAGE) \
|
||||
$(INSTALLED_ANDROID_INFO_TXT_TARGET) \
|
||||
|
|
|
@ -32,7 +32,9 @@ $(my_built_odex) : $($(my_2nd_arch_prefix)DEXPREOPT_ONE_FILE_DEPENDENCY_BUILT_BO
|
|||
$(DEXPREOPT_ONE_FILE_DEPENDENCY_TOOLS) \
|
||||
$(my_dex_preopt_image_filename)
|
||||
|
||||
my_installed_odex := $(call get-odex-file-path,$($(my_2nd_arch_prefix)DEX2OAT_TARGET_ARCH),$(LOCAL_INSTALLED_MODULE))
|
||||
my_installed_odex := $(call get-odex-installed-file-path,$($(my_2nd_arch_prefix)DEX2OAT_TARGET_ARCH),$(LOCAL_INSTALLED_MODULE))
|
||||
|
||||
$(eval $(call copy-one-file,$(my_built_odex),$(my_installed_odex)))
|
||||
|
||||
built_odex += $(my_built_odex)
|
||||
installed_odex += $(my_installed_odex)
|
||||
|
|
|
@ -95,6 +95,24 @@ def BuildSystem(input_dir, info_dict, block_list=None):
|
|||
return CreateImage(input_dir, info_dict, "system", block_list=block_list)
|
||||
|
||||
|
||||
def AddSystemOther(output_zip, prefix="IMAGES/"):
|
||||
"""Turn the contents of SYSTEM_OTHER into a system_other image
|
||||
and store it in output_zip."""
|
||||
|
||||
prebuilt_path = os.path.join(OPTIONS.input_tmp, prefix, "system_other.img")
|
||||
if os.path.exists(prebuilt_path):
|
||||
print "system_other.img already exists in %s, no need to rebuild..." % (prefix,)
|
||||
return
|
||||
|
||||
imgname = BuildSystemOther(OPTIONS.input_tmp, OPTIONS.info_dict)
|
||||
common.ZipWrite(output_zip, imgname, prefix + "system_other.img")
|
||||
|
||||
def BuildSystemOther(input_dir, info_dict):
|
||||
"""Build the (sparse) system_other image and return the name of a temp
|
||||
file containing it."""
|
||||
return CreateImage(input_dir, info_dict, "system_other", block_list=None)
|
||||
|
||||
|
||||
def AddVendor(output_zip, prefix="IMAGES/"):
|
||||
"""Turn the contents of VENDOR into a vendor image and store in it
|
||||
output_zip."""
|
||||
|
@ -312,6 +330,8 @@ def AddImagesToTargetFiles(filename):
|
|||
except KeyError:
|
||||
has_vendor = False
|
||||
|
||||
has_system_other = "SYSTEM_OTHER/" in input_zip.namelist()
|
||||
|
||||
OPTIONS.info_dict = common.LoadInfoDict(input_zip, OPTIONS.input_tmp)
|
||||
|
||||
common.ZipClose(input_zip)
|
||||
|
@ -385,6 +405,9 @@ def AddImagesToTargetFiles(filename):
|
|||
if has_vendor:
|
||||
banner("vendor")
|
||||
AddVendor(output_zip)
|
||||
if has_system_other:
|
||||
banner("system_other")
|
||||
AddSystemOther(output_zip)
|
||||
banner("userdata")
|
||||
AddUserdata(output_zip)
|
||||
banner("cache")
|
||||
|
|
|
@ -549,6 +549,19 @@ def ImagePropFromGlobalDict(glob_dict, mount_point):
|
|||
copy_prop("system_squashfs_block_size", "squashfs_block_size")
|
||||
copy_prop("system_squashfs_disable_4k_align", "squashfs_disable_4k_align")
|
||||
copy_prop("system_base_fs_file", "base_fs_file")
|
||||
elif mount_point == "system_other":
|
||||
# We inherit the selinux policies of /system since we contain some of its files.
|
||||
d["mount_point"] = "system"
|
||||
copy_prop("fs_type", "fs_type")
|
||||
copy_prop("system_fs_type", "fs_type")
|
||||
copy_prop("system_size", "partition_size")
|
||||
copy_prop("system_journal_size", "journal_size")
|
||||
copy_prop("system_verity_block_device", "verity_block_device")
|
||||
copy_prop("has_ext4_reserved_blocks", "has_ext4_reserved_blocks")
|
||||
copy_prop("system_squashfs_compressor", "squashfs_compressor")
|
||||
copy_prop("system_squashfs_compressor_opt", "squashfs_compressor_opt")
|
||||
copy_prop("system_squashfs_block_size", "squashfs_block_size")
|
||||
copy_prop("system_base_fs_file", "base_fs_file")
|
||||
elif mount_point == "data":
|
||||
# Copy the generic fs type first, override with specific one if available.
|
||||
copy_prop("fs_type", "fs_type")
|
||||
|
@ -611,6 +624,8 @@ def main(argv):
|
|||
mount_point = ""
|
||||
if image_filename == "system.img":
|
||||
mount_point = "system"
|
||||
elif image_filename == "system_other.img":
|
||||
mount_point = "system_other"
|
||||
elif image_filename == "userdata.img":
|
||||
mount_point = "data"
|
||||
elif image_filename == "cache.img":
|
||||
|
|
Loading…
Reference in New Issue