Merge commit '66b3e31936b99436e01c473dca492126eea3e336' into HEAD
This commit is contained in:
commit
13466f0f79
|
@ -1 +1,2 @@
|
|||
*.pyc
|
||||
*.swp
|
||||
|
|
49
CleanSpec.mk
49
CleanSpec.mk
|
@ -200,6 +200,12 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/DMService.apk)
|
|||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/SprintDM.apk)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/omadm)
|
||||
|
||||
# GCC 4.8
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/EXECUTABLES)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/lib/*.o)
|
||||
|
||||
# KLP I mean KitKat now API 19.
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
|
||||
|
@ -211,11 +217,34 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
|||
# 4.4.2
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
||||
|
||||
# "L" and beyond.
|
||||
# Make libart the default runtime
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
||||
|
||||
# Rename persist.sys.dalvik.vm.lib to allow new default
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
||||
|
||||
# KKWT development
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
|
||||
|
||||
# L development
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
|
||||
|
||||
# L development
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
|
||||
|
||||
# Add ro.product.cpu.abilist{32,64} to build.prop.
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
||||
|
||||
# Unset TARGET_PREFER_32_BIT_APPS for 64 bit targets.
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
||||
|
||||
# Adding dalvik.vm.dex2oat-flags to eng builds
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
||||
|
@ -236,6 +265,14 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
|||
# Switching to 32-bit-by-default host multilib build
|
||||
$(call add-clean-step, rm -rf $(HOST_OUT_INTERMEDIATES))
|
||||
|
||||
# KKWT has become API 20
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
|
||||
|
||||
# ims-common.jar added to BOOTCLASSPATH
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/ETC/init.environ.rc_intermediates)
|
||||
|
||||
# Change ro.zygote for core_64_bit.mk from zygote32_64 to zygote64_32
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop)
|
||||
|
@ -245,6 +282,8 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop)
|
|||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop)
|
||||
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system)
|
||||
|
||||
# Switch host builds to Clang by default
|
||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host)
|
||||
|
||||
|
@ -253,6 +292,16 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
|||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop)
|
||||
|
||||
# API 21?
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
|
||||
|
||||
# API 21!
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
|
||||
|
||||
# ************************************************
|
||||
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
|
||||
# ************************************************
|
||||
|
|
263
core/Makefile
263
core/Makefile
|
@ -22,7 +22,7 @@ endif
|
|||
# src:dest pair is the first one to match the same dest"
|
||||
#$(1): the src:dest pair
|
||||
define check-product-copy-files
|
||||
$(if $(filter %.apk, $(1)),$(error \
|
||||
$(if $(filter %.apk, $(call word-colon, 2, $(1))),$(error \
|
||||
Prebuilt apk found in PRODUCT_COPY_FILES: $(1), use BUILD_PREBUILT instead!))
|
||||
endef
|
||||
# filter out the duplicate <source file>:<dest file> pairs.
|
||||
|
@ -109,7 +109,7 @@ BUILD_VERSION_TAGS := $(subst $(space),$(comma),$(sort $(BUILD_VERSION_TAGS)))
|
|||
build_desc := $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT) $(PLATFORM_VERSION) $(BUILD_ID) $(BUILD_NUMBER) $(BUILD_VERSION_TAGS)
|
||||
$(INSTALLED_BUILD_PROP_TARGET): PRIVATE_BUILD_DESC := $(build_desc)
|
||||
|
||||
# The string used to uniquely identify this build; used by the OTA server.
|
||||
# The string used to uniquely identify the combined build and product; used by the OTA server.
|
||||
ifeq (,$(strip $(BUILD_FINGERPRINT)))
|
||||
ifneq ($(filter eng.%,$(BUILD_NUMBER)),)
|
||||
# Trim down BUILD_FINGERPRINT: the default BUILD_NUMBER makes it easily exceed
|
||||
|
@ -124,6 +124,22 @@ ifneq ($(words $(BUILD_FINGERPRINT)),1)
|
|||
$(error BUILD_FINGERPRINT cannot contain spaces: "$(BUILD_FINGERPRINT)")
|
||||
endif
|
||||
|
||||
# The string used to uniquely identify the system build; used by the OTA server.
|
||||
# This purposefully excludes any product-specific variables.
|
||||
ifeq (,$(strip $(BUILD_THUMBPRINT)))
|
||||
BUILD_THUMBPRINT := $(PLATFORM_VERSION)/$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/$(BUILD_VERSION_TAGS)
|
||||
endif
|
||||
ifneq ($(words $(BUILD_THUMBPRINT)),1)
|
||||
$(error BUILD_THUMBPRINT cannot contain spaces: "$(BUILD_THUMBPRINT)")
|
||||
endif
|
||||
|
||||
KNOWN_OEM_THUMBPRINT_PROPERTIES := \
|
||||
ro.product.brand \
|
||||
ro.product.name \
|
||||
ro.product.device
|
||||
OEM_THUMBPRINT_PROPERTIES := $(filter $(KNOWN_OEM_THUMBPRINT_PROPERTIES),\
|
||||
$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_OEM_PROPERTIES))
|
||||
|
||||
# Display parameters shown under Settings -> About Phone
|
||||
ifeq ($(TARGET_BUILD_VARIANT),user)
|
||||
# User builds should show:
|
||||
|
@ -172,10 +188,17 @@ system_prop_file := $(TARGET_SYSTEM_PROP)
|
|||
else
|
||||
system_prop_file := $(wildcard $(TARGET_DEVICE_DIR)/system.prop)
|
||||
endif
|
||||
|
||||
$(INSTALLED_BUILD_PROP_TARGET): $(BUILDINFO_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $(BUILD_SYSTEM)/version_defaults.mk $(system_prop_file)
|
||||
@echo Target buildinfo: $@
|
||||
@mkdir -p $(dir $@)
|
||||
$(hide) echo > $@
|
||||
ifneq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_OEM_PROPERTIES),)
|
||||
$(hide) echo "#" >> $@; \
|
||||
echo "# PRODUCT_OEM_PROPERTIES" >> $@; \
|
||||
echo "#" >> $@;
|
||||
$(hide) $(foreach prop,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_OEM_PROPERTIES), \
|
||||
echo "import /oem/oem.prop $(prop)" >> $@;)
|
||||
endif
|
||||
$(hide) TARGET_BUILD_TYPE="$(TARGET_BUILD_VARIANT)" \
|
||||
TARGET_DEVICE="$(TARGET_DEVICE)" \
|
||||
PRODUCT_NAME="$(TARGET_PRODUCT)" \
|
||||
|
@ -192,9 +215,11 @@ $(INSTALLED_BUILD_PROP_TARGET): $(BUILDINFO_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $(
|
|||
PLATFORM_VERSION="$(PLATFORM_VERSION)" \
|
||||
PLATFORM_SDK_VERSION="$(PLATFORM_SDK_VERSION)" \
|
||||
PLATFORM_VERSION_CODENAME="$(PLATFORM_VERSION_CODENAME)" \
|
||||
PLATFORM_VERSION_ALL_CODENAMES="$(PLATFORM_VERSION_ALL_CODENAMES)" \
|
||||
BUILD_VERSION_TAGS="$(BUILD_VERSION_TAGS)" \
|
||||
TARGET_BOOTLOADER_BOARD_NAME="$(TARGET_BOOTLOADER_BOARD_NAME)" \
|
||||
BUILD_FINGERPRINT="$(BUILD_FINGERPRINT)" \
|
||||
$(if $(OEM_THUMBPRINT_PROPERTIES),BUILD_THUMBPRINT="$(BUILD_THUMBPRINT)") \
|
||||
TARGET_BOARD_PLATFORM="$(TARGET_BOARD_PLATFORM)" \
|
||||
TARGET_CPU_ABI_LIST="$(TARGET_CPU_ABI_LIST)" \
|
||||
TARGET_CPU_ABI_LIST_32_BIT="$(TARGET_CPU_ABI_LIST_32_BIT)" \
|
||||
|
@ -202,7 +227,7 @@ $(INSTALLED_BUILD_PROP_TARGET): $(BUILDINFO_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $(
|
|||
TARGET_CPU_ABI="$(TARGET_CPU_ABI)" \
|
||||
TARGET_CPU_ABI2="$(TARGET_CPU_ABI2)" \
|
||||
TARGET_AAPT_CHARACTERISTICS="$(TARGET_AAPT_CHARACTERISTICS)" \
|
||||
bash $(BUILDINFO_SH) > $@
|
||||
bash $(BUILDINFO_SH) >> $@
|
||||
$(hide) $(foreach file,$(system_prop_file), \
|
||||
if [ -f "$(file)" ]; then \
|
||||
echo "#" >> $@; \
|
||||
|
@ -218,10 +243,26 @@ $(INSTALLED_BUILD_PROP_TARGET): $(BUILDINFO_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $(
|
|||
echo "#" >> $@; )
|
||||
$(hide) $(foreach line,$(ADDITIONAL_BUILD_PROPERTIES), \
|
||||
echo "$(line)" >> $@;)
|
||||
$(hide) build/tools/post_process_props.py $@
|
||||
$(hide) build/tools/post_process_props.py $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_PROPERTY_BLACKLIST)
|
||||
|
||||
build_desc :=
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# vendor build.prop
|
||||
#
|
||||
# For verifying that the vendor build is what we thing it is
|
||||
ifdef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE
|
||||
INSTALLED_VENDOR_BUILD_PROP_TARGET := $(TARGET_OUT_VENDOR)/build.prop
|
||||
ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_VENDOR_BUILD_PROP_TARGET)
|
||||
$(INSTALLED_VENDOR_BUILD_PROP_TARGET): $(INSTALLED_BUILD_PROP_TARGET)
|
||||
@echo Target vendor buildinfo: $@
|
||||
@mkdir -p $(dir $@)
|
||||
$(hide) echo > $@
|
||||
$(hide) echo ro.vendor.build.date=`date`>>$@
|
||||
$(hide) echo ro.vendor.build.date.utc=`date +%s`>>$@
|
||||
$(hide) echo ro.vendor.build.fingerprint="$(BUILD_FINGERPRINT)">>$@
|
||||
endif
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# sdk-build.prop
|
||||
#
|
||||
|
@ -459,18 +500,33 @@ bootimage-nodeps: $(MKEXT2IMG)
|
|||
@echo "make $@: ignoring dependencies"
|
||||
$(hide) $(MKEXT2BOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) --output $(INSTALLED_BOOTIMAGE_TARGET)
|
||||
|
||||
else # TARGET_BOOTIMAGE_USE_EXT2 != true
|
||||
else ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY)) # TARGET_BOOTIMAGE_USE_EXT2 != true
|
||||
|
||||
$(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOT_SIGNER)
|
||||
$(call pretty,"Target boot image: $@")
|
||||
$(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@
|
||||
$(BOOT_SIGNER) /boot $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY) $@
|
||||
$(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE))
|
||||
|
||||
.PHONY: bootimage-nodeps
|
||||
bootimage-nodeps: $(MKBOOTIMG) $(BOOT_SIGNER)
|
||||
@echo "make $@: ignoring dependencies"
|
||||
$(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $(INSTALLED_BOOTIMAGE_TARGET)
|
||||
$(BOOT_SIGNER) /boot $(INSTALLED_BOOTIMAGE_TARGET) $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY) $(INSTALLED_BOOTIMAGE_TARGET)
|
||||
$(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE))
|
||||
|
||||
else # PRODUCT_SUPPORTS_VERITY != true
|
||||
|
||||
$(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES)
|
||||
$(call pretty,"Target boot image: $@")
|
||||
$(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@
|
||||
$(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE),raw)
|
||||
$(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE))
|
||||
|
||||
.PHONY: bootimage-nodeps
|
||||
bootimage-nodeps: $(MKBOOTIMG)
|
||||
@echo "make $@: ignoring dependencies"
|
||||
$(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $(INSTALLED_BOOTIMAGE_TARGET)
|
||||
$(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE),raw)
|
||||
$(hide) $(call assert-max-image-size,$(INSTALLED_BOOTIMAGE_TARGET),$(BOARD_BOOTIMAGE_PARTITION_SIZE))
|
||||
|
||||
endif # TARGET_BOOTIMAGE_USE_EXT2
|
||||
|
||||
|
@ -623,12 +679,21 @@ ifneq (true,$(TARGET_USERIMAGES_SPARSE_EXT_DISABLED))
|
|||
endif
|
||||
|
||||
ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true)
|
||||
INTERNAL_USERIMAGES_DEPS := $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(SIMG2IMG) $(E2FSCK)
|
||||
INTERNAL_USERIMAGES_DEPS := $(SIMG2IMG)
|
||||
INTERNAL_USERIMAGES_DEPS += $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(E2FSCK)
|
||||
ifeq ($(TARGET_USERIMAGES_USE_F2FS),true)
|
||||
INTERNAL_USERIMAGES_DEPS += $(MKF2FSUSERIMG) $(MAKE_F2FS)
|
||||
endif
|
||||
else
|
||||
INTERNAL_USERIMAGES_DEPS := $(MKYAFFS2)
|
||||
endif
|
||||
|
||||
INTERNAL_USERIMAGES_BINARY_PATHS := $(sort $(dir $(INTERNAL_USERIMAGES_DEPS)))
|
||||
|
||||
ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY))
|
||||
INTERNAL_USERIMAGES_DEPS += $(BUILD_VERITY_TREE) $(APPEND2SIMG) $(VERITY_SIGNER)
|
||||
endif
|
||||
|
||||
SELINUX_FC := $(TARGET_ROOT_OUT)/file_contexts
|
||||
INTERNAL_USERIMAGES_DEPS += $(SELINUX_FC)
|
||||
|
||||
|
@ -637,14 +702,21 @@ INTERNAL_USERIMAGES_DEPS += $(SELINUX_FC)
|
|||
define generate-userimage-prop-dictionary
|
||||
$(if $(INTERNAL_USERIMAGES_EXT_VARIANT),$(hide) echo "fs_type=$(INTERNAL_USERIMAGES_EXT_VARIANT)" >> $(1))
|
||||
$(if $(BOARD_SYSTEMIMAGE_PARTITION_SIZE),$(hide) echo "system_size=$(BOARD_SYSTEMIMAGE_PARTITION_SIZE)" >> $(1))
|
||||
$(if $(BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "userdata_fs_type=$(BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE)" >> $(1))
|
||||
$(if $(BOARD_USERDATAIMAGE_PARTITION_SIZE),$(hide) echo "userdata_size=$(BOARD_USERDATAIMAGE_PARTITION_SIZE)" >> $(1))
|
||||
$(if $(BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "cache_fs_type=$(BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE)" >> $(1))
|
||||
$(if $(BOARD_CACHEIMAGE_PARTITION_SIZE),$(hide) echo "cache_size=$(BOARD_CACHEIMAGE_PARTITION_SIZE)" >> $(1))
|
||||
$(if $(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "vendor_fs_type=$(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE)" >> $(1))
|
||||
$(if $(BOARD_VENDORIMAGE_PARTITION_SIZE),$(hide) echo "vendor_size=$(BOARD_VENDORIMAGE_PARTITION_SIZE)" >> $(1))
|
||||
$(if $(BOARD_OEMIMAGE_PARTITION_SIZE),$(hide) echo "oem_size=$(BOARD_OEMIMAGE_PARTITION_SIZE)" >> $(1))
|
||||
$(if $(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG),$(hide) echo "extfs_sparse_flag=$(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG)" >> $(1))
|
||||
$(if $(mkyaffs2_extra_flags),$(hide) echo "mkyaffs2_extra_flags=$(mkyaffs2_extra_flags)" >> $(1))
|
||||
$(hide) echo "selinux_fc=$(SELINUX_FC)" >> $(1)
|
||||
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),$(hide) echo "verity=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY)" >> $(1))
|
||||
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),$(hide) echo "verity_key=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY)" >> $(1))
|
||||
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),$(hide) echo "verity_signer_cmd=$(VERITY_SIGNER)" >> $(1))
|
||||
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_VERITY_PARTITION),$(hide) echo "system_verity_block_device=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_VERITY_PARTITION)" >> $(1))
|
||||
$(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VENDOR_VERITY_PARTITION),$(hide) echo "vendor_verity_block_device=$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VENDOR_VERITY_PARTITION)" >> $(1))
|
||||
$(if $(2),$(hide) $(foreach kv,$(2),echo "$(kv)" >> $(1);))
|
||||
endef
|
||||
|
||||
|
@ -664,11 +736,32 @@ recovery_build_prop := $(INSTALLED_BUILD_PROP_TARGET)
|
|||
recovery_binary := $(call intermediates-dir-for,EXECUTABLES,recovery,,,$(TARGET_PREFER_32_BIT))/recovery
|
||||
recovery_resources_common := $(call include-path-for, recovery)/res
|
||||
|
||||
# Select the 18x32 font on high-density devices; and the 12x22 font on
|
||||
# other devices. Note that the font selected here can be overridden
|
||||
# for a particular device by putting a font.png in its private
|
||||
# recovery resources.
|
||||
ifneq (,$(filter xxhdpi xhdpi,$(subst $(comma),$(space),$(PRODUCT_AAPT_CONFIG))))
|
||||
# Set recovery_density to the density bucket of the device.
|
||||
recovery_density := unknown
|
||||
ifneq (,$(PRODUCT_AAPT_PREF_CONFIG))
|
||||
# If PRODUCT_AAPT_PREF_CONFIG includes a dpi bucket, then use that value.
|
||||
recovery_density := $(filter %dpi,$(PRODUCT_AAPT_PREF_CONFIG))
|
||||
else
|
||||
# Otherwise, use the highest density that appears in PRODUCT_AAPT_CONFIG.
|
||||
# Order is important here; we'll take the first one that's found.
|
||||
recovery_densities := $(filter $(PRODUCT_AAPT_CONFIG_SP),xxxhdpi xxhdpi xhdpi hdpi tvdpi mdpi ldpi)
|
||||
ifneq (,$(recovery_densities))
|
||||
recovery_density := $(word 1,$(recovery_densities))
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (,$(wildcard $(recovery_resources_common)-$(recovery_density)))
|
||||
recovery_resources_common := $(recovery_resources_common)-$(recovery_density)
|
||||
else
|
||||
recovery_resources_common := $(recovery_resources_common)-xhdpi
|
||||
endif
|
||||
|
||||
# Select the 18x32 font on high-density devices (xhdpi and up); and
|
||||
# the 12x22 font on other devices. Note that the font selected here
|
||||
# can be overridden for a particular device by putting a font.png in
|
||||
# its private recovery resources.
|
||||
|
||||
ifneq (,$(filter xxxhdpi xxhdpi xhdpi,$(recovery_density)))
|
||||
recovery_font := $(call include-path-for, recovery)/fonts/18x32.png
|
||||
else
|
||||
recovery_font := $(call include-path-for, recovery)/fonts/12x22.png
|
||||
|
@ -750,7 +843,9 @@ $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) \
|
|||
$(hide) cp -f $(recovery_sepolicy) $(TARGET_RECOVERY_ROOT_OUT)/sepolicy
|
||||
$(hide) -cp $(TARGET_ROOT_OUT)/init.recovery.*.rc $(TARGET_RECOVERY_ROOT_OUT)/
|
||||
$(hide) cp -f $(recovery_binary) $(TARGET_RECOVERY_ROOT_OUT)/sbin/
|
||||
$(hide) cp -rf $(recovery_resources_common) $(TARGET_RECOVERY_ROOT_OUT)/
|
||||
$(hide) mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/res
|
||||
$(hide) rm -rf $(TARGET_RECOVERY_ROOT_OUT)/res/*
|
||||
$(hide) cp -rf $(recovery_resources_common)/* $(TARGET_RECOVERY_ROOT_OUT)/res
|
||||
$(hide) cp -f $(recovery_font) $(TARGET_RECOVERY_ROOT_OUT)/res/images/font.png
|
||||
$(hide) $(foreach item,$(recovery_resources_private), \
|
||||
cp -rf $(item) $(TARGET_RECOVERY_ROOT_OUT)/)
|
||||
|
@ -761,7 +856,10 @@ $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) \
|
|||
> $(TARGET_RECOVERY_ROOT_OUT)/default.prop
|
||||
$(hide) $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) | $(MINIGZIP) > $(recovery_ramdisk)
|
||||
$(hide) $(MKBOOTIMG) $(INTERNAL_RECOVERYIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@
|
||||
$(hide) $(call assert-max-image-size,$@,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE),raw)
|
||||
ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY))
|
||||
$(BOOT_SIGNER) /recovery $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_VERITY_SIGNING_KEY) $@
|
||||
endif
|
||||
$(hide) $(call assert-max-image-size,$@,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE))
|
||||
@echo ----- Made recovery image: $@ --------
|
||||
|
||||
$(RECOVERY_RESOURCE_ZIP): $(INSTALLED_RECOVERYIMAGE_TARGET)
|
||||
|
@ -828,14 +926,36 @@ systemimage_intermediates := \
|
|||
$(call intermediates-dir-for,PACKAGING,systemimage)
|
||||
BUILT_SYSTEMIMAGE := $(systemimage_intermediates)/system.img
|
||||
|
||||
# Create symlink /system/vendor to /vendor if necessary.
|
||||
ifdef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE
|
||||
define create-system-vendor-symlink
|
||||
$(hide) if [ -d $(TARGET_OUT)/vendor ] && [ ! -h $(TARGET_OUT)/vendor ]; then \
|
||||
echo 'Non-symlink $(TARGET_OUT)/vendor detected!' 1>&2; \
|
||||
echo 'You cannot install files to $(TARGET_OUT)/vendor while building a separate vendor.img!' 1>&2; \
|
||||
exit 1; \
|
||||
fi
|
||||
$(hide) ln -sf /vendor $(TARGET_OUT)/vendor
|
||||
endef
|
||||
else
|
||||
define create-system-vendor-symlink
|
||||
endef
|
||||
endif
|
||||
|
||||
# $(1): output file
|
||||
define build-systemimage-target
|
||||
@echo "Target system fs image: $(1)"
|
||||
$(call create-system-vendor-symlink)
|
||||
@mkdir -p $(dir $(1)) $(systemimage_intermediates) && rm -rf $(systemimage_intermediates)/system_image_info.txt
|
||||
$(call generate-userimage-prop-dictionary, $(systemimage_intermediates)/system_image_info.txt, skip_fsck=true)
|
||||
$(call generate-userimage-prop-dictionary, $(systemimage_intermediates)/system_image_info.txt, \
|
||||
skip_fsck=true)
|
||||
$(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \
|
||||
./build/tools/releasetools/build_image.py \
|
||||
$(TARGET_OUT) $(systemimage_intermediates)/system_image_info.txt $(1)
|
||||
$(TARGET_OUT) $(systemimage_intermediates)/system_image_info.txt $(1) \
|
||||
|| ( echo "Out of space? the tree size of $(TARGET_OUT) is (MB): " 1>&2 ;\
|
||||
du -sm $(TARGET_OUT) 1>&2;\
|
||||
echo "The max is $$(( $(BOARD_SYSTEMIMAGE_PARTITION_SIZE) / 1048576 )) MB." 1>&2 ;\
|
||||
mkdir -p $(DIST_DIR); cp $(INSTALLED_FILES_FILE) $(DIST_DIR)/installed-files-rescued.txt; \
|
||||
exit 1 )
|
||||
endef
|
||||
|
||||
$(BUILT_SYSTEMIMAGE): $(FULL_SYSTEMIMAGE_DEPS) $(INSTALLED_FILES_FILE)
|
||||
|
@ -865,7 +985,7 @@ endif
|
|||
$(INSTALLED_SYSTEMIMAGE): $(BUILT_SYSTEMIMAGE) $(RECOVERY_FROM_BOOT_PATCH) | $(ACP)
|
||||
@echo "Install system fs image: $@"
|
||||
$(copy-file-to-target)
|
||||
$(hide) $(call assert-max-image-size,$@ $(RECOVERY_FROM_BOOT_PATCH),$(BOARD_SYSTEMIMAGE_PARTITION_SIZE),yaffs)
|
||||
$(hide) $(call assert-max-image-size,$@ $(RECOVERY_FROM_BOOT_PATCH),$(BOARD_SYSTEMIMAGE_PARTITION_SIZE))
|
||||
|
||||
systemimage: $(INSTALLED_SYSTEMIMAGE)
|
||||
|
||||
|
@ -874,7 +994,7 @@ systemimage-nodeps snod: $(filter-out systemimage-nodeps snod,$(MAKECMDGOALS)) \
|
|||
| $(INTERNAL_USERIMAGES_DEPS)
|
||||
@echo "make $@: ignoring dependencies"
|
||||
$(call build-systemimage-target,$(INSTALLED_SYSTEMIMAGE))
|
||||
$(hide) $(call assert-max-image-size,$(INSTALLED_SYSTEMIMAGE),$(BOARD_SYSTEMIMAGE_PARTITION_SIZE),yaffs)
|
||||
$(hide) $(call assert-max-image-size,$(INSTALLED_SYSTEMIMAGE),$(BOARD_SYSTEMIMAGE_PARTITION_SIZE))
|
||||
|
||||
ifneq (,$(filter systemimage-nodeps snod, $(MAKECMDGOALS)))
|
||||
ifeq (true,$(WITH_DEXPREOPT))
|
||||
|
@ -885,10 +1005,11 @@ endif
|
|||
#######
|
||||
## system tarball
|
||||
define build-systemtarball-target
|
||||
$(call pretty,"Target system fs tarball: $(INSTALLED_SYSTEMTARBALL_TARGET)")
|
||||
$(MKTARBALL) $(FS_GET_STATS) \
|
||||
$(PRODUCT_OUT) system $(PRIVATE_SYSTEM_TAR) \
|
||||
$(INSTALLED_SYSTEMTARBALL_TARGET)
|
||||
$(call pretty,"Target system fs tarball: $(INSTALLED_SYSTEMTARBALL_TARGET)")
|
||||
$(call create-system-vendor-symlink)
|
||||
$(MKTARBALL) $(FS_GET_STATS) \
|
||||
$(PRODUCT_OUT) system $(PRIVATE_SYSTEM_TAR) \
|
||||
$(INSTALLED_SYSTEMTARBALL_TARGET)
|
||||
endef
|
||||
|
||||
ifndef SYSTEM_TARBALL_FORMAT
|
||||
|
@ -909,11 +1030,6 @@ systemtarball-nodeps: $(FS_GET_STATS) \
|
|||
.PHONY: stnod
|
||||
stnod: systemtarball-nodeps
|
||||
|
||||
# For platform-java goal, add platform as well
|
||||
ifneq (,$(filter platform-java, $(MAKECMDGOALS)))
|
||||
PLATFORM_ZIP_ADD_JAVA := true
|
||||
endif
|
||||
|
||||
#######
|
||||
## platform.zip: system, plus other files to be used in PDK fusion build,
|
||||
## in a zip file
|
||||
|
@ -930,7 +1046,11 @@ $(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_SYSTEMIMAGE_FILES)
|
|||
$(TARGET_COPY_OUT_SYSTEM) \
|
||||
$(patsubst $(PRODUCT_OUT)/%, %, $(TARGET_OUT_NOTICE_FILES)) \
|
||||
$(addprefix symbols/,$(PDK_SYMBOL_FILES_LIST))
|
||||
ifeq (true,$(PLATFORM_ZIP_ADD_JAVA))
|
||||
ifdef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE
|
||||
$(hide) cd $(dir $@) && zip -qry $(notdir $@) \
|
||||
$(TARGET_COPY_OUT_VENDOR)
|
||||
endif
|
||||
ifneq ($(PDK_PLATFORM_JAVA_ZIP_CONTENTS),)
|
||||
$(hide) cd $(OUT_DIR) && zip -qry $(patsubst $(OUT_DIR)/%,%,$@) $(PDK_PLATFORM_JAVA_ZIP_CONTENTS)
|
||||
endif
|
||||
ifneq ($(PDK_PLATFORM_ZIP_PRODUCT_BINARIES),)
|
||||
|
@ -1002,7 +1122,7 @@ define build-userdataimage-target
|
|||
$(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \
|
||||
./build/tools/releasetools/build_image.py \
|
||||
$(TARGET_OUT_DATA) $(userdataimage_intermediates)/userdata_image_info.txt $(INSTALLED_USERDATAIMAGE_TARGET)
|
||||
$(hide) $(call assert-max-image-size,$(INSTALLED_USERDATAIMAGE_TARGET),$(BOARD_USERDATAIMAGE_PARTITION_SIZE),yaffs)
|
||||
$(hide) $(call assert-max-image-size,$(INSTALLED_USERDATAIMAGE_TARGET),$(BOARD_USERDATAIMAGE_PARTITION_SIZE))
|
||||
endef
|
||||
|
||||
# We just build this directly to the install location.
|
||||
|
@ -1057,7 +1177,7 @@ define build-cacheimage-target
|
|||
$(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \
|
||||
./build/tools/releasetools/build_image.py \
|
||||
$(TARGET_OUT_CACHE) $(cacheimage_intermediates)/cache_image_info.txt $(INSTALLED_CACHEIMAGE_TARGET)
|
||||
$(hide) $(call assert-max-image-size,$(INSTALLED_CACHEIMAGE_TARGET),$(BOARD_CACHEIMAGE_PARTITION_SIZE),yaffs)
|
||||
$(hide) $(call assert-max-image-size,$(INSTALLED_CACHEIMAGE_TARGET),$(BOARD_CACHEIMAGE_PARTITION_SIZE))
|
||||
endef
|
||||
|
||||
# We just build this directly to the install location.
|
||||
|
@ -1076,7 +1196,12 @@ endif # BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE
|
|||
# vendor partition image
|
||||
ifdef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE
|
||||
INTERNAL_VENDORIMAGE_FILES := \
|
||||
$(filter $(TARGET_OUT_VENDOR)/%,$(ALL_DEFAULT_INSTALLED_MODULES))
|
||||
$(filter $(TARGET_OUT_VENDOR)/%,\
|
||||
$(ALL_DEFAULT_INSTALLED_MODULES)\
|
||||
$(ALL_PDK_FUSION_FILES))
|
||||
|
||||
# platform.zip depends on $(INTERNAL_VENDORIMAGE_FILES).
|
||||
$(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_VENDORIMAGE_FILES)
|
||||
|
||||
vendorimage_intermediates := \
|
||||
$(call intermediates-dir-for,PACKAGING,vendor)
|
||||
|
@ -1090,7 +1215,7 @@ define build-vendorimage-target
|
|||
$(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \
|
||||
./build/tools/releasetools/build_image.py \
|
||||
$(TARGET_OUT_VENDOR) $(vendorimage_intermediates)/vendor_image_info.txt $(INSTALLED_VENDORIMAGE_TARGET)
|
||||
$(hide) $(call assert-max-image-size,$(INSTALLED_VENDORIMAGE_TARGET),$(BOARD_VENDORIMAGE_PARTITION_SIZE),yaffs)
|
||||
$(hide) $(call assert-max-image-size,$(INSTALLED_VENDORIMAGE_TARGET),$(BOARD_VENDORIMAGE_PARTITION_SIZE))
|
||||
endef
|
||||
|
||||
# We just build this directly to the install location.
|
||||
|
@ -1120,7 +1245,11 @@ DISTTOOLS := $(HOST_OUT_EXECUTABLES)/minigzip \
|
|||
$(HOST_OUT_EXECUTABLES)/mkuserimg.sh \
|
||||
$(HOST_OUT_EXECUTABLES)/make_ext4fs \
|
||||
$(HOST_OUT_EXECUTABLES)/simg2img \
|
||||
$(HOST_OUT_EXECUTABLES)/e2fsck
|
||||
$(HOST_OUT_EXECUTABLES)/e2fsck \
|
||||
$(HOST_OUT_EXECUTABLES)/build_verity_tree \
|
||||
$(HOST_OUT_EXECUTABLES)/verity_signer \
|
||||
$(HOST_OUT_EXECUTABLES)/append2simg \
|
||||
$(HOST_OUT_EXECUTABLES)/boot_signer
|
||||
|
||||
OTATOOLS := $(DISTTOOLS) \
|
||||
$(HOST_OUT_EXECUTABLES)/aapt
|
||||
|
@ -1276,18 +1405,29 @@ endif
|
|||
$(hide) echo "use_set_metadata=1" >> $(zip_root)/META/misc_info.txt
|
||||
$(hide) echo "multistage_support=1" >> $(zip_root)/META/misc_info.txt
|
||||
$(hide) echo "update_rename_support=1" >> $(zip_root)/META/misc_info.txt
|
||||
ifneq ($(OEM_THUMBPRINT_PROPERTIES),)
|
||||
# OTA scripts are only interested in fingerprint related properties
|
||||
$(hide) echo "oem_fingerprint_properties=$(OEM_THUMBPRINT_PROPERTIES)" >> $(zip_root)/META/misc_info.txt
|
||||
endif
|
||||
$(call generate-userimage-prop-dictionary, $(zip_root)/META/misc_info.txt)
|
||||
$(hide) ./build/tools/releasetools/make_recovery_patch $(zip_root) $(zip_root)
|
||||
@# Zip everything up, preserving symlinks
|
||||
$(hide) (cd $(zip_root) && zip -qry ../$(notdir $@) .)
|
||||
@# Run fs_config on all the system, boot ramdisk, and recovery ramdisk files in the zip, and save the output
|
||||
@# Run fs_config on all the system, vendor, boot ramdisk,
|
||||
@# and recovery ramdisk files in the zip, and save the output
|
||||
$(hide) zipinfo -1 $@ | awk 'BEGIN { FS="SYSTEM/" } /^SYSTEM\// {print "system/" $$2}' | $(HOST_OUT_EXECUTABLES)/fs_config -C -S $(SELINUX_FC) > $(zip_root)/META/filesystem_config.txt
|
||||
$(hide) zipinfo -1 $@ | awk 'BEGIN { FS="VENDOR/" } /^VENDOR\// {print "vendor/" $$2}' | $(HOST_OUT_EXECUTABLES)/fs_config -C -S $(SELINUX_FC) > $(zip_root)/META/vendor_filesystem_config.txt
|
||||
$(hide) zipinfo -1 $@ | awk 'BEGIN { FS="BOOT/RAMDISK/" } /^BOOT\/RAMDISK\// {print $$2}' | $(HOST_OUT_EXECUTABLES)/fs_config -C -S $(SELINUX_FC) > $(zip_root)/META/boot_filesystem_config.txt
|
||||
$(hide) zipinfo -1 $@ | awk 'BEGIN { FS="RECOVERY/RAMDISK/" } /^RECOVERY\/RAMDISK\// {print $$2}' | $(HOST_OUT_EXECUTABLES)/fs_config -C -S $(SELINUX_FC) > $(zip_root)/META/recovery_filesystem_config.txt
|
||||
$(hide) (cd $(zip_root) && zip -q ../$(notdir $@) META/*filesystem_config.txt)
|
||||
$(hide) ./build/tools/releasetools/add_img_to_target_files -p $(HOST_OUT) $@
|
||||
|
||||
.PHONY: target-files-package
|
||||
target-files-package: $(BUILT_TARGET_FILES_PACKAGE)
|
||||
|
||||
ifneq ($(filter $(MAKECMDGOALS),target-files-package),)
|
||||
$(call dist-for-goals, target-files-package, $(BUILT_TARGET_FILES_PACKAGE))
|
||||
endif
|
||||
|
||||
ifneq ($(TARGET_PRODUCT),sdk)
|
||||
ifeq ($(filter generic%,$(TARGET_DEVICE)),)
|
||||
|
@ -1311,13 +1451,20 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
|
|||
@echo "Package OTA: $@"
|
||||
$(hide) MKBOOTIMG=$(MKBOOTIMG) \
|
||||
./build/tools/releasetools/ota_from_target_files -v \
|
||||
--block \
|
||||
-p $(HOST_OUT) \
|
||||
-k $(KEY_CERT_PAIR) \
|
||||
$(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \
|
||||
$(BUILT_TARGET_FILES_PACKAGE) $@
|
||||
|
||||
.PHONY: otapackage
|
||||
otapackage: $(INTERNAL_OTA_PACKAGE_TARGET)
|
||||
|
||||
endif # recovery_fstab is defined
|
||||
endif # TARGET_NO_KERNEL != true
|
||||
endif # TARGET_DEVICE != generic*
|
||||
endif # TARGET_PRODUCT != sdk
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# The update package
|
||||
|
||||
|
@ -1329,29 +1476,16 @@ name := $(name)-img-$(FILE_NAME_TAG)
|
|||
|
||||
INTERNAL_UPDATE_PACKAGE_TARGET := $(PRODUCT_OUT)/$(name).zip
|
||||
|
||||
ifeq ($(TARGET_RELEASETOOLS_EXTENSIONS),)
|
||||
# default to common dir for device vendor
|
||||
$(INTERNAL_UPDATE_PACKAGE_TARGET): extensions := $(TARGET_DEVICE_DIR)/../common
|
||||
else
|
||||
$(INTERNAL_UPDATE_PACKAGE_TARGET): extensions := $(TARGET_RELEASETOOLS_EXTENSIONS)
|
||||
endif
|
||||
|
||||
$(INTERNAL_UPDATE_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
|
||||
@echo "Package: $@"
|
||||
$(hide) MKBOOTIMG=$(MKBOOTIMG) \
|
||||
./build/tools/releasetools/img_from_target_files -v \
|
||||
-s $(extensions) \
|
||||
-p $(HOST_OUT) \
|
||||
$(BUILT_TARGET_FILES_PACKAGE) $@
|
||||
|
||||
.PHONY: updatepackage
|
||||
updatepackage: $(INTERNAL_UPDATE_PACKAGE_TARGET)
|
||||
|
||||
endif # recovery_fstab is defined
|
||||
endif # TARGET_NO_KERNEL != true
|
||||
endif # TARGET_DEVICE != generic*
|
||||
endif # TARGET_PRODUCT != sdk
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# A zip of the symbols directory. Keep the full paths to make it
|
||||
# more obvious where these files came from.
|
||||
|
@ -1384,7 +1518,7 @@ $(APPS_ZIP): $(INSTALLED_SYSTEMIMAGE)
|
|||
@echo "Package apps: $@"
|
||||
$(hide) rm -rf $@
|
||||
$(hide) mkdir -p $(dir $@)
|
||||
$(hide) zip -qj $@ $(TARGET_OUT_APPS)/* $(TARGET_OUT_APPS_PRIVILEGED)/*
|
||||
$(hide) zip -qj $@ $(TARGET_OUT_APPS)/*/*.apk $(TARGET_OUT_APPS_PRIVILEGED)/*/*.apk
|
||||
|
||||
|
||||
#------------------------------------------------------------------
|
||||
|
@ -1396,7 +1530,7 @@ EMMA_META_ZIP := $(PRODUCT_OUT)/emma_meta.zip
|
|||
# the dependency will be set up later in build/core/main.mk.
|
||||
$(EMMA_META_ZIP) :
|
||||
@echo "Collecting Emma coverage meta files."
|
||||
$(hide) find $(TARGET_COMMON_OUT_ROOT) -name "coverage.em" | \
|
||||
$(hide) find $(TARGET_COMMON_OUT_ROOT) $(HOST_COMMON_OUT_ROOT) -name "coverage.em" | \
|
||||
zip -@ -q $@
|
||||
|
||||
endif # EMMA_INSTRUMENT=true
|
||||
|
@ -1412,7 +1546,8 @@ $(PROGUARD_DICT_ZIP) :
|
|||
@echo "Packaging Proguard obfuscation dictionary files."
|
||||
$(hide) dict_files=`find $(TARGET_OUT_COMMON_INTERMEDIATES)/APPS -name proguard_dictionary`; \
|
||||
if [ -n "$$dict_files" ]; then \
|
||||
zip -q $@ $$dict_files; \
|
||||
unobfuscated_jars=$${dict_files//proguard_dictionary/classes.jar}; \
|
||||
zip -q $@ $$dict_files $$unobfuscated_jars; \
|
||||
else \
|
||||
touch $(dir $@)/dummy; \
|
||||
(cd $(dir $@) && zip -q $(notdir $@) dummy); \
|
||||
|
@ -1488,7 +1623,6 @@ ifeq ($(strip $(ATREE_FILES)),)
|
|||
ATREE_FILES := \
|
||||
$(ALL_PREBUILT) \
|
||||
$(ALL_COPIED_HEADERS) \
|
||||
$(ALL_GENERATED_SOURCES) \
|
||||
$(ALL_DEFAULT_INSTALLED_MODULES) \
|
||||
$(INSTALLED_RAMDISK_TARGET) \
|
||||
$(ALL_DOCS) \
|
||||
|
@ -1500,7 +1634,6 @@ atree_dir := development/build
|
|||
|
||||
sdk_atree_files := \
|
||||
$(atree_dir)/sdk.exclude.atree \
|
||||
$(atree_dir)/sdk.atree \
|
||||
$(atree_dir)/sdk-$(HOST_OS)-$(SDK_HOST_ARCH).atree
|
||||
|
||||
# development/build/sdk-android-<abi>.atree is used to differentiate
|
||||
|
@ -1511,6 +1644,14 @@ ifneq (,$(strip $(wildcard $(atree_dir)/sdk-android-$(TARGET_CPU_ABI).atree)))
|
|||
sdk_atree_files += $(atree_dir)/sdk-android-$(TARGET_CPU_ABI).atree
|
||||
endif
|
||||
|
||||
ifneq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SDK_ATREE_FILES),)
|
||||
sdk_atree_files += $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SDK_ATREE_FILES)
|
||||
else
|
||||
sdk_atree_files += $(atree_dir)/sdk.atree
|
||||
endif
|
||||
|
||||
include $(BUILD_SYSTEM)/sdk_font.mk
|
||||
|
||||
deps := \
|
||||
$(target_notice_file_txt) \
|
||||
$(tools_notice_file_txt) \
|
||||
|
@ -1522,9 +1663,10 @@ deps := \
|
|||
$(INSTALLED_SDK_BUILD_PROP_TARGET) \
|
||||
$(INSTALLED_BUILD_PROP_TARGET) \
|
||||
$(ATREE_FILES) \
|
||||
$(atree_dir)/sdk.atree \
|
||||
$(sdk_atree_files) \
|
||||
$(HOST_OUT_EXECUTABLES)/atree \
|
||||
$(HOST_OUT_EXECUTABLES)/line_endings
|
||||
$(HOST_OUT_EXECUTABLES)/line_endings \
|
||||
$(SDK_FONT_DEPS)
|
||||
|
||||
INTERNAL_SDK_TARGET := $(sdk_dir)/$(sdk_name).zip
|
||||
$(INTERNAL_SDK_TARGET): PRIVATE_NAME := $(sdk_name)
|
||||
|
@ -1547,6 +1689,7 @@ $(INTERNAL_SDK_TARGET): $(deps)
|
|||
fi; \
|
||||
done; \
|
||||
if [ $$FAIL ]; then exit 1; fi
|
||||
$(hide) echo $(notdir $(SDK_FONT_DEPS)) | tr " " "\n" > $(SDK_FONT_TEMP)/fontsInSdk.txt
|
||||
$(hide) ( \
|
||||
ATREE_STRIP="strip -x" \
|
||||
$(HOST_OUT_EXECUTABLES)/atree \
|
||||
|
@ -1562,6 +1705,7 @@ $(INTERNAL_SDK_TARGET): $(deps)
|
|||
-v "TARGET_ARCH=$(TARGET_ARCH)" \
|
||||
-v "TARGET_CPU_ABI=$(TARGET_CPU_ABI)" \
|
||||
-v "DLL_EXTENSION=$(HOST_SHLIB_SUFFIX)" \
|
||||
-v "FONT_OUT=$(SDK_FONT_TEMP)" \
|
||||
-o $(PRIVATE_DIR) && \
|
||||
cp -f $(target_notice_file_txt) \
|
||||
$(PRIVATE_DIR)/system-images/android-$(PLATFORM_VERSION)/$(TARGET_CPU_ABI)/NOTICE.txt && \
|
||||
|
@ -1588,11 +1732,11 @@ INTERNAL_FINDBUGS_XML_TARGET := $(PRODUCT_OUT)/findbugs.xml
|
|||
INTERNAL_FINDBUGS_HTML_TARGET := $(PRODUCT_OUT)/findbugs.html
|
||||
$(INTERNAL_FINDBUGS_XML_TARGET): $(ALL_FINDBUGS_FILES)
|
||||
@echo UnionBugs: $@
|
||||
$(hide) prebuilt/common/findbugs/bin/unionBugs $(ALL_FINDBUGS_FILES) \
|
||||
$(hide) $(FINDBUGS_DIR)/unionBugs $(ALL_FINDBUGS_FILES) \
|
||||
> $@
|
||||
$(INTERNAL_FINDBUGS_HTML_TARGET): $(INTERNAL_FINDBUGS_XML_TARGET)
|
||||
@echo ConvertXmlToText: $@
|
||||
$(hide) prebuilt/common/findbugs/bin/convertXmlToText -html:fancy.xsl \
|
||||
$(hide) $(FINDBUGS_DIR)/convertXmlToText -html:fancy.xsl \
|
||||
$(INTERNAL_FINDBUGS_XML_TARGET) > $@
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
|
@ -1604,6 +1748,9 @@ ifneq ($(dont_bother),true)
|
|||
include $(sort $(wildcard $(BUILD_SYSTEM)/tasks/*.mk))
|
||||
-include $(sort $(wildcard vendor/*/build/tasks/*.mk))
|
||||
-include $(sort $(wildcard device/*/build/tasks/*.mk))
|
||||
# Also the project-specific tasks
|
||||
-include $(sort $(wildcard vendor/*/*/build/tasks/*.mk))
|
||||
-include $(sort $(wildcard device/*/*/build/tasks/*.mk))
|
||||
endif
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
# Handle AndroidManifest.xmls
|
||||
# Input: LOCAL_MANIFEST_FILE, LOCAL_FULL_MANIFEST_FILE, LOCAL_FULL_LIBS_MANIFEST_FILES
|
||||
# Output: full_android_manifest
|
||||
|
||||
ifeq ($(strip $(LOCAL_MANIFEST_FILE)),)
|
||||
LOCAL_MANIFEST_FILE := AndroidManifest.xml
|
||||
endif
|
||||
ifdef LOCAL_FULL_MANIFEST_FILE
|
||||
full_android_manifest := $(LOCAL_FULL_MANIFEST_FILE)
|
||||
else
|
||||
full_android_manifest := $(LOCAL_PATH)/$(LOCAL_MANIFEST_FILE)
|
||||
endif
|
||||
|
||||
# Set up rules to merge library manifest files
|
||||
ifdef LOCAL_FULL_LIBS_MANIFEST_FILES
|
||||
main_android_manifest := $(full_android_manifest)
|
||||
full_android_manifest := $(intermediates.COMMON)/AndroidManifest.xml
|
||||
$(full_android_manifest): PRIVATE_LIBS_MANIFESTS := $(LOCAL_FULL_LIBS_MANIFEST_FILES)
|
||||
$(full_android_manifest) : $(main_android_manifest) $(LOCAL_FULL_LIBS_MANIFEST_FILES)
|
||||
@echo "Merge android manifest files: $@ <-- $^"
|
||||
@mkdir -p $(dir $@)
|
||||
$(hide) $(ANDROID_MANIFEST_MERGER) --main $< --libs $(PRIVATE_LIBS_MANIFESTS) \
|
||||
--out $@
|
||||
|
||||
endif
|
|
@ -7,7 +7,7 @@ To make these errors go away, you have two choices:
|
|||
errors above.
|
||||
|
||||
2) You can update current.txt by executing the following command:
|
||||
make update-api
|
||||
make %UPDATE_API%
|
||||
|
||||
To submit the revised current.txt to the main Android repository,
|
||||
you will need approval.
|
||||
|
|
|
@ -114,6 +114,8 @@ ifeq ($(my_module_path),)
|
|||
else
|
||||
ifeq (true,$(LOCAL_PROPRIETARY_MODULE))
|
||||
partition_tag := _VENDOR
|
||||
else ifeq (true,$(LOCAL_OEM_MODULE))
|
||||
partition_tag := _OEM
|
||||
else
|
||||
# The definition of should-install-to-system will be different depending
|
||||
# on which goal (e.g., sdk or just droid) is being built.
|
||||
|
@ -174,9 +176,15 @@ else
|
|||
built_module_path := $(intermediates)
|
||||
endif
|
||||
LOCAL_BUILT_MODULE := $(built_module_path)/$(my_built_module_stem)
|
||||
built_module_path :=
|
||||
|
||||
ifneq (true,$(LOCAL_UNINSTALLABLE_MODULE))
|
||||
# Apk and its attachments reside in its own subdir.
|
||||
ifeq ($(LOCAL_MODULE_CLASS),APPS)
|
||||
# framework-res.apk doesn't like the additional layer.
|
||||
ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
|
||||
my_module_path := $(my_module_path)/$(LOCAL_MODULE)
|
||||
endif
|
||||
endif
|
||||
LOCAL_INSTALLED_MODULE := $(my_module_path)/$(my_installed_module_stem)
|
||||
endif
|
||||
|
||||
|
@ -198,12 +206,12 @@ aidl_sources := $(addprefix $(TOP_DIR)$(LOCAL_PATH)/, $(aidl_sources))
|
|||
aidl_preprocess_import :=
|
||||
LOCAL_SDK_VERSION:=$(strip $(LOCAL_SDK_VERSION))
|
||||
ifdef LOCAL_SDK_VERSION
|
||||
ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),current)
|
||||
ifneq ($(filter current system_current, $(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS)),)
|
||||
# LOCAL_SDK_VERSION is current and no TARGET_BUILD_APPS
|
||||
aidl_preprocess_import := $(TARGET_OUT_COMMON_INTERMEDIATES)/framework.aidl
|
||||
else
|
||||
aidl_preprocess_import := $(HISTORICAL_SDK_VERSIONS_ROOT)/$(LOCAL_SDK_VERSION)/framework.aidl
|
||||
endif # !current
|
||||
endif # not current or system_current
|
||||
else
|
||||
# build against the platform.
|
||||
LOCAL_AIDL_INCLUDES += $(FRAMEWORKS_BASE_JAVA_SRC_DIRS)
|
||||
|
@ -230,7 +238,7 @@ event_log_tags := $(addprefix $(LOCAL_PATH)/,$(logtags_sources))
|
|||
|
||||
# Emit a java source file with constants for the tags, if
|
||||
# LOCAL_MODULE_CLASS is "APPS" or "JAVA_LIBRARIES".
|
||||
ifneq ($(strip $(filter $(LOCAL_MODULE_CLASS),APPS JAVA_LIBRARIES)),)
|
||||
ifneq ($(filter $(LOCAL_MODULE_CLASS),APPS JAVA_LIBRARIES),)
|
||||
|
||||
logtags_java_sources := $(patsubst %.logtags,%.java,$(addprefix $(intermediates.COMMON)/src/, $(logtags_sources)))
|
||||
logtags_sources := $(addprefix $(TOP_DIR)$(LOCAL_PATH)/, $(logtags_sources))
|
||||
|
@ -386,13 +394,14 @@ else
|
|||
ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),current)
|
||||
# LOCAL_SDK_VERSION is current and no TARGET_BUILD_APPS.
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_BOOTCLASSPATH := -bootclasspath $(call java-lib-files,android_stubs_current)
|
||||
else ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),system_current)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_BOOTCLASSPATH := -bootclasspath $(call java-lib-files,android_system_stubs_current)
|
||||
else
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_BOOTCLASSPATH := -bootclasspath $(call java-lib-files,sdk_v$(LOCAL_SDK_VERSION))
|
||||
endif # current
|
||||
endif # current or system_current
|
||||
endif # LOCAL_SDK_VERSION
|
||||
endif # TARGET_
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_RESOURCE_DIR := $(LOCAL_RESOURCE_DIR)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_EXTRA_JAR_ARGS := $(extra_jar_args)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ASSET_DIR := $(LOCAL_ASSET_DIR)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_STATIC_JAVA_LIBRARIES := $(full_static_java_libs)
|
||||
|
||||
|
@ -423,10 +432,10 @@ full_java_lib_deps += $(full_static_java_libs) $(LOCAL_CLASSPATH)
|
|||
|
||||
# This is set by packages that are linking to other packages that export
|
||||
# shared libraries, allowing them to make use of the code in the linked apk.
|
||||
LOCAL_APK_LIBRARIES := $(strip $(LOCAL_APK_LIBRARIES))
|
||||
ifdef LOCAL_APK_LIBRARIES
|
||||
apk_libraries := $(sort $(LOCAL_APK_LIBRARIES) $(LOCAL_RES_LIBRARIES))
|
||||
ifneq ($(apk_libraries),)
|
||||
link_apk_libraries := \
|
||||
$(foreach lib,$(LOCAL_APK_LIBRARIES), \
|
||||
$(foreach lib,$(apk_libraries), \
|
||||
$(call intermediates-dir-for, \
|
||||
APPS,$(lib),,COMMON)/classes.jar)
|
||||
|
||||
|
@ -454,6 +463,10 @@ ifdef LOCAL_INSTRUMENTATION_FOR
|
|||
full_java_lib_deps += $(link_instr_classes_jar)
|
||||
endif
|
||||
|
||||
endif # need_compile_java
|
||||
|
||||
# We may want to add jar manifest or jar resource files even if there is no java code at all.
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_EXTRA_JAR_ARGS := $(extra_jar_args)
|
||||
jar_manifest_file :=
|
||||
ifneq ($(strip $(LOCAL_JAR_MANIFEST)),)
|
||||
jar_manifest_file := $(LOCAL_PATH)/$(LOCAL_JAR_MANIFEST)
|
||||
|
@ -462,9 +475,6 @@ else
|
|||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JAR_MANIFEST :=
|
||||
endif
|
||||
|
||||
endif # need_compile_java
|
||||
|
||||
|
||||
###########################################################
|
||||
## make clean- targets
|
||||
###########################################################
|
||||
|
@ -598,7 +608,7 @@ ifneq (true,$(LOCAL_UNINSTALLABLE_MODULE))
|
|||
ALL_MODULES.$(my_register_name).INSTALLED := \
|
||||
$(strip $(ALL_MODULES.$(my_register_name).INSTALLED) $(LOCAL_INSTALLED_MODULE))
|
||||
ALL_MODULES.$(my_register_name).BUILT_INSTALLED := \
|
||||
$(strip $(ALL_MODULES.$(my_register_name).BUILT_INSTALLED)$(LOCAL_BUILT_MODULE):$(LOCAL_INSTALLED_MODULE))
|
||||
$(strip $(ALL_MODULES.$(my_register_name).BUILT_INSTALLED) $(LOCAL_BUILT_MODULE):$(LOCAL_INSTALLED_MODULE))
|
||||
endif
|
||||
ifdef LOCAL_PICKUP_FILES
|
||||
# Files or directories ready to pick up by the build system
|
||||
|
@ -622,6 +632,9 @@ endif
|
|||
ifdef LOCAL_2ND_ARCH_VAR_PREFIX
|
||||
ALL_MODULES.$(my_register_name).FOR_2ND_ARCH := true
|
||||
endif
|
||||
ifdef aidl_sources
|
||||
ALL_MODULES.$(my_register_name).AIDL_FILES := $(aidl_sources)
|
||||
endif
|
||||
|
||||
INSTALLABLE_FILES.$(LOCAL_INSTALLED_MODULE).MODULE := $(my_register_name)
|
||||
|
||||
|
|
|
@ -179,6 +179,8 @@ endif
|
|||
|
||||
ifeq ($(strip $(LOCAL_ADDRESS_SANITIZER)),true)
|
||||
my_clang := true
|
||||
# Frame pointer based unwinder in ASan requires ARM frame setup.
|
||||
LOCAL_ARM_MODE := arm
|
||||
my_cflags += $(ADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS)
|
||||
my_ldflags += $(ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS)
|
||||
ifdef LOCAL_IS_HOST_MODULE
|
||||
|
@ -210,10 +212,10 @@ endif
|
|||
####################################################
|
||||
## Add FDO flags if FDO is turned on and supported
|
||||
####################################################
|
||||
ifneq ($(strip $(LOCAL_FDO_SUPPORT)),)
|
||||
ifeq ($(strip $(LOCAL_FDO_SUPPORT)), true)
|
||||
ifeq ($(strip $(LOCAL_IS_HOST_MODULE)),)
|
||||
my_cflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_CFLAGS)
|
||||
my_ldflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_CFLAGS)
|
||||
my_ldflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_LDFLAGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -457,6 +459,8 @@ endif
|
|||
# This can be disabled with LOCAL_RENDERSCRIPT_FLAGS := -Wno-error
|
||||
renderscript_flags := -Wall -Werror
|
||||
renderscript_flags += $(LOCAL_RENDERSCRIPT_FLAGS)
|
||||
# -m32 or -m64
|
||||
renderscript_flags += -m$(my_32_64_bit_suffix)
|
||||
|
||||
renderscript_includes := \
|
||||
$(TOPDIR)external/clang/lib/Headers \
|
||||
|
@ -527,6 +531,9 @@ proto_generated_obj_dir := $(intermediates)/proto
|
|||
proto_generated_objects := $(addprefix $(proto_generated_obj_dir)/, \
|
||||
$(patsubst %.proto,%.pb.o,$(proto_sources_fullpath)))
|
||||
|
||||
# Auto-export the generated proto source dir.
|
||||
LOCAL_EXPORT_C_INCLUDE_DIRS += $(proto_generated_cc_sources_dir)
|
||||
|
||||
# Ensure the transform-proto-to-cc rule is only defined once in multilib build.
|
||||
ifndef $(my_prefix)_$(LOCAL_MODULE_CLASS)_$(LOCAL_MODULE)_proto_defined
|
||||
$(proto_generated_cc_sources): PRIVATE_PROTO_INCLUDES := $(TOP)
|
||||
|
@ -1006,7 +1013,8 @@ $(LOCAL_INSTALLED_MODULE): | $(installed_static_library_notice_file_targets)
|
|||
###########################################################
|
||||
export_includes := $(intermediates)/export_includes
|
||||
$(export_includes): PRIVATE_EXPORT_C_INCLUDE_DIRS := $(LOCAL_EXPORT_C_INCLUDE_DIRS)
|
||||
$(export_includes) : $(LOCAL_MODULE_MAKEFILE)
|
||||
# Make sure .pb.h are already generated before any dependent source files get compiled.
|
||||
$(export_includes) : $(LOCAL_MODULE_MAKEFILE) $(proto_generated_headers)
|
||||
@echo Export includes file: $< -- $@
|
||||
$(hide) mkdir -p $(dir $@) && rm -f $@
|
||||
ifdef LOCAL_EXPORT_C_INCLUDE_DIRS
|
||||
|
|
|
@ -18,6 +18,4 @@
|
|||
# (like "CRB01"). It must be a single word, and is
|
||||
# capitalized by convention.
|
||||
|
||||
BUILD_ID := AOSP
|
||||
|
||||
DISPLAY_BUILD_NUMBER := true
|
||||
export BUILD_ID=LMP
|
||||
|
|
|
@ -14,8 +14,8 @@ CLANG_CXX := $(LLVM_PREBUILTS_PATH)/clang++$(BUILD_EXECUTABLE_SUFFIX)
|
|||
LLVM_AS := $(LLVM_PREBUILTS_PATH)/llvm-as$(BUILD_EXECUTABLE_SUFFIX)
|
||||
LLVM_LINK := $(LLVM_PREBUILTS_PATH)/llvm-link$(BUILD_EXECUTABLE_SUFFIX)
|
||||
|
||||
CLANG_TBLGEN := $(HOST_OUT_EXECUTABLES)/clang-tblgen$(BUILD_EXECUTABLE_SUFFIX)
|
||||
LLVM_TBLGEN := $(HOST_OUT_EXECUTABLES)/llvm-tblgen$(BUILD_EXECUTABLE_SUFFIX)
|
||||
CLANG_TBLGEN := $(BUILD_OUT_EXECUTABLES)/clang-tblgen$(BUILD_EXECUTABLE_SUFFIX)
|
||||
LLVM_TBLGEN := $(BUILD_OUT_EXECUTABLES)/llvm-tblgen$(BUILD_EXECUTABLE_SUFFIX)
|
||||
|
||||
# The C/C++ compiler can be wrapped by setting the CC/CXX_WRAPPER vars.
|
||||
ifdef CC_WRAPPER
|
||||
|
@ -95,7 +95,8 @@ include $(BUILD_SYSTEM)/clang/TARGET_$(TARGET_2ND_ARCH).mk
|
|||
endif
|
||||
|
||||
# Address sanitizer clang config
|
||||
ADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS := -fsanitize=address
|
||||
ADDRESS_SANITIZER_RUNTIME_LIBRARY := libclang_rt.asan_$(TARGET_ARCH)_android
|
||||
ADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS := -fsanitize=address -fno-omit-frame-pointer
|
||||
ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS := -Wl,-u,__asan_preinit
|
||||
|
||||
ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS_HOST := -rdynamic
|
||||
|
@ -105,7 +106,7 @@ ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES_HOST := libasan
|
|||
|
||||
ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS_TARGET :=
|
||||
ADDRESS_SANITIZER_CONFIG_EXTRA_LDLIBS_TARGET :=
|
||||
ADDRESS_SANITIZER_CONFIG_EXTRA_SHARED_LIBRARIES_TARGET := libdl libasan_preload
|
||||
ADDRESS_SANITIZER_CONFIG_EXTRA_SHARED_LIBRARIES_TARGET := libdl $(ADDRESS_SANITIZER_RUNTIME_LIBRARY)
|
||||
ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES_TARGET := libasan
|
||||
|
||||
# This allows us to use the superset of functionality that compiler-rt
|
||||
|
|
|
@ -214,13 +214,16 @@ installclean_files := \
|
|||
$(PRODUCT_OUT)/recovery \
|
||||
$(PRODUCT_OUT)/root \
|
||||
$(PRODUCT_OUT)/system \
|
||||
$(PRODUCT_OUT)/vendor \
|
||||
$(PRODUCT_OUT)/oem \
|
||||
$(PRODUCT_OUT)/dex_bootjars \
|
||||
$(PRODUCT_OUT)/obj/JAVA_LIBRARIES \
|
||||
$(PRODUCT_OUT)/obj/FAKE \
|
||||
$(PRODUCT_OUT)/obj/EXECUTABLES/adbd_intermediates \
|
||||
$(PRODUCT_OUT)/obj/EXECUTABLES/init_intermediates \
|
||||
$(PRODUCT_OUT)/obj/ETC/mac_permissions.xml_intermediates \
|
||||
$(PRODUCT_OUT)/obj/ETC/sepolicy_intermediates
|
||||
$(PRODUCT_OUT)/obj/ETC/sepolicy_intermediates \
|
||||
$(PRODUCT_OUT)/obj/ETC/init.environ.rc_intermediates
|
||||
|
||||
# The files/dirs to delete during a dataclean, which removes any files
|
||||
# in the staging and emulator data partitions.
|
||||
|
|
|
@ -23,6 +23,7 @@ LOCAL_PACKAGE_NAME:=
|
|||
LOCAL_OVERRIDES_PACKAGES:=
|
||||
LOCAL_EXPORT_PACKAGE_RESOURCES:=
|
||||
LOCAL_MANIFEST_PACKAGE_NAME:=
|
||||
LOCAL_PACKAGE_SPLITS:=
|
||||
LOCAL_REQUIRED_MODULES:=
|
||||
LOCAL_ACP_UNAVAILABLE:=
|
||||
LOCAL_MODULE_TAGS:=
|
||||
|
@ -96,6 +97,7 @@ LOCAL_PREBUILT_JNI_LIBS:=
|
|||
LOCAL_JAR_MANIFEST:=
|
||||
LOCAL_INSTRUMENTATION_FOR:=
|
||||
LOCAL_APK_LIBRARIES:=
|
||||
LOCAL_RES_LIBRARIES:=
|
||||
LOCAL_MANIFEST_INSTRUMENTATION_FOR:=
|
||||
LOCAL_AIDL_INCLUDES:=
|
||||
LOCAL_JARJAR_RULES:=
|
||||
|
@ -115,6 +117,7 @@ LOCAL_EMMA_COVERAGE_FILTER:=
|
|||
LOCAL_WARNINGS_ENABLE:=
|
||||
LOCAL_FULL_MANIFEST_FILE:=
|
||||
LOCAL_MANIFEST_FILE:=
|
||||
LOCAL_FULL_LIBS_MANIFEST_FILES:=
|
||||
LOCAL_RENDERSCRIPT_INCLUDES:=
|
||||
LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE:=
|
||||
LOCAL_RENDERSCRIPT_CC:=
|
||||
|
@ -130,6 +133,7 @@ LOCAL_PROTOC_FLAGS:=
|
|||
LOCAL_PROTO_JAVA_OUTPUT_PARAMS:=
|
||||
LOCAL_NO_CRT:=
|
||||
LOCAL_PROPRIETARY_MODULE:=
|
||||
LOCAL_OEM_MODULE:=
|
||||
LOCAL_PRIVILEGED_MODULE:=
|
||||
LOCAL_MODULE_OWNER:=
|
||||
LOCAL_CTS_TEST_PACKAGE:=
|
||||
|
@ -138,6 +142,7 @@ LOCAL_CLANG:=
|
|||
LOCAL_ADDRESS_SANITIZER:=
|
||||
LOCAL_JAR_EXCLUDE_FILES:=
|
||||
LOCAL_JAR_PACKAGES:=
|
||||
LOCAL_JAR_EXCLUDE_PACKAGES:=
|
||||
LOCAL_LINT_FLAGS:=
|
||||
LOCAL_SOURCE_FILES_ALL_GENERATED:= # '',true
|
||||
# Don't delete the META_INF dir when merging static Java libraries.
|
||||
|
@ -148,6 +153,7 @@ LOCAL_POST_LINK_CMD:=
|
|||
LOCAL_POST_INSTALL_CMD:=
|
||||
LOCAL_DIST_BUNDLED_BINARIES:=
|
||||
LOCAL_HAL_STATIC_LIBRARIES:=
|
||||
LOCAL_RMTYPEDEFS:=
|
||||
LOCAL_NO_SYNTAX_CHECK:=
|
||||
LOCAL_NO_STATIC_ANALYZER:=
|
||||
LOCAL_32_BIT_ONLY:= # '',true
|
||||
|
|
|
@ -28,9 +28,14 @@ ifdef USE_MINGW
|
|||
HOST_ACP_UNAVAILABLE := true
|
||||
TOOLS_EXE_SUFFIX :=
|
||||
$(combo_2nd_arch_prefix)HOST_GLOBAL_CFLAGS += -DUSE_MINGW
|
||||
TOOLS_PREFIX := /usr/bin/i586-mingw32msvc-
|
||||
$(combo_2nd_arch_prefix)HOST_C_INCLUDES += /usr/lib/gcc/i586-mingw32msvc/3.4.4/include
|
||||
$(combo_2nd_arch_prefix)HOST_GLOBAL_LD_DIRS += -L/usr/i586-mingw32msvc/lib
|
||||
$(combo_2nd_arch_prefix)HOST_GLOBAL_CFLAGS += -Wno-unused-parameter
|
||||
$(combo_2nd_arch_prefix)HOST_GLOBAL_CFLAGS += --sysroot=prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32
|
||||
$(combo_2nd_arch_prefix)HOST_GLOBAL_CFLAGS += -m32
|
||||
$(combo_2nd_arch_prefix)HOST_GLOBAL_LDFLAGS += -m32
|
||||
TOOLS_PREFIX := prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/bin/x86_64-w64-mingw32-
|
||||
$(combo_2nd_arch_prefix)HOST_C_INCLUDES += prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/include
|
||||
$(combo_2nd_arch_prefix)HOST_C_INCLUDES += prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/lib/gcc/x86_64-w64-mingw32/4.8.3/include
|
||||
$(combo_2nd_arch_prefix)HOST_GLOBAL_LD_DIRS += -Lprebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/lib32
|
||||
endif # USE_MINGW
|
||||
endif # Linux
|
||||
|
||||
|
|
|
@ -115,7 +115,7 @@ $(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += \
|
|||
# into no-op in some builds while mesg is defined earlier. So we explicitly
|
||||
# disable "-Wunused-but-set-variable" here.
|
||||
ifneq ($(filter 4.6 4.6.% 4.7 4.7.% 4.8, $($(combo_2nd_arch_prefix)TARGET_GCC_VERSION)),)
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += -Wno-unused-but-set-variable -fno-builtin-sin \
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += -fno-builtin-sin \
|
||||
-fno-strict-volatile-bitfields
|
||||
endif
|
||||
|
||||
|
@ -164,8 +164,8 @@ $(combo_2nd_arch_prefix)TARGET_LIBGCC := $(shell $($(combo_2nd_arch_prefix)TARGE
|
|||
$($(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS) -print-libgcc-file-name)
|
||||
$(combo_2nd_arch_prefix)TARGET_LIBATOMIC := $(shell $($(combo_2nd_arch_prefix)TARGET_CC) \
|
||||
$($(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS) -print-file-name=libatomic.a)
|
||||
$(combo_2nd_arch_prefix)TARGET_LIBGCOV := $(shell $($(combo_2nd_arch_prefix)TARGET_CC) $($(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS) \
|
||||
-print-file-name=libgcov.a)
|
||||
$(combo_2nd_arch_prefix)TARGET_LIBGCOV := $(shell $($(combo_2nd_arch_prefix)TARGET_CC) \
|
||||
$($(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS) -print-file-name=libgcov.a)
|
||||
endif
|
||||
|
||||
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
||||
|
@ -207,7 +207,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -235,7 +234,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -pie \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -263,7 +261,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bstatic \
|
|||
-Wl,--start-group \
|
||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
||||
$(call normalize-target-libraries,$(filter %libcompiler_rt.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
|
|
|
@ -35,7 +35,7 @@ TARGET_ARCH_VARIANT := armv8
|
|||
endif
|
||||
|
||||
# Decouple NDK library selection with platform compiler version
|
||||
TARGET_NDK_GCC_VERSION := 4.8
|
||||
TARGET_NDK_GCC_VERSION := 4.9
|
||||
|
||||
ifeq ($(strip $(TARGET_GCC_VERSION_EXP)),)
|
||||
TARGET_GCC_VERSION := 4.9
|
||||
|
@ -173,7 +173,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -201,7 +200,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -pie \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -229,7 +227,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bstatic \
|
|||
-Wl,--start-group \
|
||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
||||
$(call normalize-target-libraries,$(filter %libcompiler_rt.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
|
|
|
@ -179,7 +179,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -207,7 +206,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -pie \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -235,7 +233,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bstatic \
|
|||
-Wl,--start-group \
|
||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
||||
$(call normalize-target-libraries,$(filter %libcompiler_rt.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
|
|
|
@ -183,7 +183,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -211,7 +210,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -pie \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||
|
@ -239,7 +237,6 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bstatic \
|
|||
-Wl,--start-group \
|
||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
||||
$(call normalize-target-libraries,$(filter %libcompiler_rt.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
|
|
|
@ -160,7 +160,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_LDFLAGS) \
|
||||
|
@ -188,7 +187,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_LDFLAGS) \
|
||||
|
@ -213,7 +211,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
-Wl,--no-whole-archive \
|
||||
-Wl,--start-group \
|
||||
$(call normalize-target-libraries,$(filter-out %libcompiler_rt.a,$(filter-out %libc_nomalloc.a,$(filter-out %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))))) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
|
|
|
@ -165,7 +165,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_LDFLAGS) \
|
||||
|
@ -192,7 +191,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
||||
$(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \
|
||||
$(if $(TARGET_BUILD_APPS),$(PRIVATE_TARGET_LIBGCC)) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
||||
-o $@ \
|
||||
$(PRIVATE_LDFLAGS) \
|
||||
|
@ -219,7 +217,6 @@ $(hide) $(PRIVATE_CXX) \
|
|||
-Wl,--start-group \
|
||||
$(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
$(PRIVATE_TARGET_FDO_LIB) \
|
||||
$(PRIVATE_TARGET_LIBATOMIC) \
|
||||
$(if $(filter true,$(NATIVE_COVERAGE)),$(PRIVATE_TARGET_LIBGCOV)) \
|
||||
$(call normalize-target-libraries,$(filter %libcompiler_rt.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \
|
||||
|
|
|
@ -17,25 +17,23 @@
|
|||
# Setup FDO related flags.
|
||||
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS:=
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB:=
|
||||
|
||||
ifneq ($(strip $(BUILD_FDO_INSTRUMENT)),)
|
||||
ifeq ($(strip $(BUILD_FDO_INSTRUMENT)), true)
|
||||
# Set BUILD_FDO_INSTRUMENT=true to turn on FDO instrumentation.
|
||||
# The profile will be generated on /data/local/tmp/profile on the device.
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-generate=/data/local/tmp/fdo_profile -DANDROID_FDO
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB := $(target_libgcov)
|
||||
# The profile will be generated on /sdcard/fdo_profile on the device.
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-generate=/sdcard/fdo_profile -DANDROID_FDO
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_LDFLAGS := -lgcov -lgcc
|
||||
else
|
||||
ifneq ($(strip $(BUILD_FDO_OPTIMIZE)),)
|
||||
ifeq ($(strip $(BUILD_FDO_OPTIMIZE)), true)
|
||||
# Set TARGET_FDO_PROFILE_PATH to set a custom profile directory for your build.
|
||||
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH)),)
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH := fdo_profiles
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH := vendor/google_data/fdo_profile
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(wildcard $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH))),)
|
||||
ifneq ($(strip $(wildcard $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH)/$(PRODUCT_OUT))),)
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-use=$($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH) -DANDROID_FDO -fprofile-correction -Wcoverage-mismatch -Wno-error
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB := $(target_libgcov)
|
||||
else
|
||||
$(warning Profile directory $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH) does not exist. Turn off FDO.)
|
||||
$(warning Profile directory $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH)/$(PRODUCT_OUT) does not exist. Turn off FDO.)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -18,6 +18,14 @@ endif
|
|||
empty :=
|
||||
space := $(empty) $(empty)
|
||||
comma := ,
|
||||
# Note that make will eat the newline just before endef.
|
||||
define newline
|
||||
|
||||
|
||||
endef
|
||||
# Unfortunately you can't simply define backslash as \ or \\.
|
||||
backslash := \a
|
||||
backslash := $(patsubst %a,%,$(backslash))
|
||||
|
||||
# Tell python not to spam the source tree with .pyc files. This
|
||||
# only has an effect on python 2.6 and above.
|
||||
|
@ -37,13 +45,13 @@ SRC_HEADERS := \
|
|||
$(TOPDIR)frameworks/native/include \
|
||||
$(TOPDIR)frameworks/native/opengl/include \
|
||||
$(TOPDIR)frameworks/av/include \
|
||||
$(TOPDIR)frameworks/base/include \
|
||||
$(TOPDIR)external/skia/include
|
||||
$(TOPDIR)frameworks/base/include
|
||||
SRC_HOST_HEADERS:=$(TOPDIR)tools/include
|
||||
SRC_LIBRARIES:= $(TOPDIR)libs
|
||||
SRC_SERVERS:= $(TOPDIR)servers
|
||||
SRC_TARGET_DIR := $(TOPDIR)build/target
|
||||
SRC_API_DIR := $(TOPDIR)prebuilts/sdk/api
|
||||
SRC_SYSTEM_API_DIR := $(TOPDIR)prebuilts/sdk/system-api
|
||||
|
||||
# Some specific paths to tools
|
||||
SRC_DROIDDOC_DIR := $(TOPDIR)build/tools/droiddoc
|
||||
|
@ -387,6 +395,8 @@ FS_GET_STATS := $(HOST_OUT_EXECUTABLES)/fs_get_stats$(HOST_EXECUTABLE_SUFFIX)
|
|||
MKEXT2IMG := $(HOST_OUT_EXECUTABLES)/genext2fs$(HOST_EXECUTABLE_SUFFIX)
|
||||
MAKE_EXT4FS := $(HOST_OUT_EXECUTABLES)/make_ext4fs$(HOST_EXECUTABLE_SUFFIX)
|
||||
MKEXTUSERIMG := $(HOST_OUT_EXECUTABLES)/mkuserimg.sh
|
||||
MAKE_F2FS := $(HOST_OUT_EXECUTABLES)/make_f2fs$(HOST_EXECUTABLE_SUFFIX)
|
||||
MKF2FSUSERIMG := $(HOST_OUT_EXECUTABLES)/mkf2fsuserimg.sh
|
||||
MKEXT2BOOTIMG := external/genext2fs/mkbootimg_ext2.sh
|
||||
SIMG2IMG := $(HOST_OUT_EXECUTABLES)/simg2img$(HOST_EXECUTABLE_SUFFIX)
|
||||
E2FSCK := $(HOST_OUT_EXECUTABLES)/e2fsck$(HOST_EXECUTABLE_SUFFIX)
|
||||
|
@ -399,6 +409,11 @@ JAVATAGS := build/tools/java-event-log-tags.py
|
|||
LLVM_RS_CC := $(HOST_OUT_EXECUTABLES)/llvm-rs-cc$(HOST_EXECUTABLE_SUFFIX)
|
||||
BCC_COMPAT := $(HOST_OUT_EXECUTABLES)/bcc_compat$(HOST_EXECUTABLE_SUFFIX)
|
||||
LINT := prebuilts/sdk/tools/lint
|
||||
RMTYPEDEFS := $(HOST_OUT_EXECUTABLES)/rmtypedefs
|
||||
APPEND2SIMG := $(HOST_OUT_EXECUTABLES)/append2simg
|
||||
VERITY_SIGNER := $(HOST_OUT_EXECUTABLES)/verity_signer
|
||||
BUILD_VERITY_TREE := $(HOST_OUT_EXECUTABLES)/build_verity_tree
|
||||
BOOT_SIGNER := $(HOST_OUT_EXECUTABLES)/boot_signer
|
||||
|
||||
# ACP is always for the build OS, not for the host OS
|
||||
ACP := $(BUILD_OUT_EXECUTABLES)/acp$(BUILD_EXECUTABLE_SUFFIX)
|
||||
|
@ -406,9 +421,13 @@ ACP := $(BUILD_OUT_EXECUTABLES)/acp$(BUILD_EXECUTABLE_SUFFIX)
|
|||
# dx is java behind a shell script; no .exe necessary.
|
||||
DX := $(HOST_OUT_EXECUTABLES)/dx
|
||||
ZIPALIGN := $(HOST_OUT_EXECUTABLES)/zipalign$(HOST_EXECUTABLE_SUFFIX)
|
||||
FINDBUGS := prebuilt/common/findbugs/bin/findbugs
|
||||
FINDBUGS_DIR := external/owasp/sanitizer/tools/findbugs/bin
|
||||
FINDBUGS := $(FINDBUGS_DIR)/findbugs
|
||||
EMMA_JAR := external/emma/lib/emma$(COMMON_JAVA_PACKAGE_SUFFIX)
|
||||
|
||||
# Tool to merge AndroidManifest.xmls
|
||||
ANDROID_MANIFEST_MERGER := java -classpath prebuilts/devtools/tools/lib/manifest-merger.jar com.android.manifmerger.Main merge
|
||||
|
||||
YACC_HEADER_SUFFIX:= .hpp
|
||||
|
||||
# Don't use column under Windows, cygwin or not
|
||||
|
@ -523,7 +542,7 @@ endif
|
|||
|
||||
# allow overriding default Java libraries on a per-target basis
|
||||
ifeq ($(TARGET_DEFAULT_JAVA_LIBRARIES),)
|
||||
TARGET_DEFAULT_JAVA_LIBRARIES := core-libart core-junit ext framework framework2
|
||||
TARGET_DEFAULT_JAVA_LIBRARIES := core-libart core-junit ext framework
|
||||
endif
|
||||
|
||||
TARGET_CPU_SMP ?= true
|
||||
|
@ -576,7 +595,13 @@ TARGET_AVAILABLE_SDK_VERSIONS := $(call numerically_sort,\
|
|||
$(patsubst $(HISTORICAL_SDK_VERSIONS_ROOT)/%/android.jar,%, \
|
||||
$(wildcard $(HISTORICAL_SDK_VERSIONS_ROOT)/*/android.jar)))
|
||||
|
||||
# We don't have prebuilt system_current SDK yet.
|
||||
TARGET_AVAILABLE_SDK_VERSIONS := $(TARGET_AVAILABLE_SDK_VERSIONS)
|
||||
|
||||
INTERNAL_PLATFORM_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/public_api.txt
|
||||
INTERNAL_PLATFORM_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/removed.txt
|
||||
INTERNAL_PLATFORM_SYSTEM_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/system-api.txt
|
||||
INTERNAL_PLATFORM_SYSTEM_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/system-removed.txt
|
||||
|
||||
# This is the standard way to name a directory containing prebuilt target
|
||||
# objects. E.g., prebuilt/$(TARGET_PREBUILT_TAG)/libc.so
|
||||
|
|
|
@ -1423,6 +1423,10 @@ ifdef BUILD_HOST_static
|
|||
HOST_FPIE_FLAGS :=
|
||||
else
|
||||
HOST_FPIE_FLAGS := -pie
|
||||
# Force the correct entry point to workaround a bug in binutils that manifests with -pie
|
||||
ifeq ($(HOST_OS),windows)
|
||||
HOST_FPIE_FLAGS += -Wl,-e_mainCRTStartup
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(HOST_CUSTOM_LD_COMMAND),true)
|
||||
|
@ -1576,7 +1580,7 @@ $(hide) mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR)
|
|||
$(call unzip-jar-files,$(PRIVATE_STATIC_JAVA_LIBRARIES),$(PRIVATE_CLASS_INTERMEDIATES_DIR))
|
||||
$(call dump-words-to-file,$(PRIVATE_JAVA_SOURCES),$(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list)
|
||||
$(hide) if [ -d "$(PRIVATE_SOURCE_INTERMEDIATES_DIR)" ]; then \
|
||||
find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name '*.java' >> $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list; \
|
||||
find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name '*.java' >> $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list; \
|
||||
fi
|
||||
$(hide) tr ' ' '\n' < $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list \
|
||||
| sort -u > $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq
|
||||
|
@ -1601,12 +1605,21 @@ $(if $(PRIVATE_JAR_EXCLUDE_FILES), $(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DI
|
|||
-name $(word 1, $(PRIVATE_JAR_EXCLUDE_FILES)) \
|
||||
$(addprefix -o -name , $(wordlist 2, 999, $(PRIVATE_JAR_EXCLUDE_FILES))) \
|
||||
| xargs rm -rf)
|
||||
$(if $(PRIVATE_JAR_PACKAGES), $(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -mindepth 1 -type d \
|
||||
$(foreach pkg, $(PRIVATE_JAR_PACKAGES), \
|
||||
-not -path $(PRIVATE_CLASS_INTERMEDIATES_DIR)/$(subst .,/,$(pkg))) \
|
||||
| xargs rm -rf)
|
||||
$(hide) jar $(if $(strip $(PRIVATE_JAR_MANIFEST)),-cfm,-cf) \
|
||||
$@ $(PRIVATE_JAR_MANIFEST) -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) .
|
||||
$(if $(PRIVATE_JAR_PACKAGES), \
|
||||
$(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -mindepth 1 -type f \
|
||||
$(foreach pkg, $(PRIVATE_JAR_PACKAGES), \
|
||||
-not -path $(PRIVATE_CLASS_INTERMEDIATES_DIR)/$(subst .,/,$(pkg))/\*) -delete ; \
|
||||
find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -empty -delete)
|
||||
$(if $(PRIVATE_JAR_EXCLUDE_PACKAGES), $(hide) rm -rf \
|
||||
$(foreach pkg, $(PRIVATE_JAR_EXCLUDE_PACKAGES), \
|
||||
$(PRIVATE_CLASS_INTERMEDIATES_DIR)/$(subst .,/,$(pkg))))
|
||||
$(if $(PRIVATE_RMTYPEDEFS), $(hide) $(RMTYPEDEFS) -v $(PRIVATE_CLASS_INTERMEDIATES_DIR))
|
||||
$(if $(PRIVATE_JAR_MANIFEST), \
|
||||
$(hide) sed -e 's/%BUILD_NUMBER%/$(BUILD_NUMBER)/' \
|
||||
$(PRIVATE_JAR_MANIFEST) > $(dir $@)/manifest.mf && \
|
||||
jar -cfm $@ $(dir $@)/manifest.mf \
|
||||
-C $(PRIVATE_CLASS_INTERMEDIATES_DIR) ., \
|
||||
$(hide) jar -cf $@ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) .)
|
||||
endef
|
||||
|
||||
define transform-java-to-classes.jar
|
||||
|
@ -1652,12 +1665,21 @@ $(if $(PRIVATE_JAR_EXCLUDE_FILES), $(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DI
|
|||
-name $(word 1, $(PRIVATE_JAR_EXCLUDE_FILES)) \
|
||||
$(addprefix -o -name , $(wordlist 2, 999, $(PRIVATE_JAR_EXCLUDE_FILES))) \
|
||||
| xargs rm -rf)
|
||||
$(if $(PRIVATE_JAR_PACKAGES), $(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -mindepth 1 -type d \
|
||||
$(foreach pkg, $(PRIVATE_JAR_PACKAGES), \
|
||||
-not -path $(PRIVATE_CLASS_INTERMEDIATES_DIR)/$(subst .,/,$(pkg))) \
|
||||
| xargs rm -rf)
|
||||
$(hide) jar $(if $(strip $(PRIVATE_JAR_MANIFEST)),-cfm,-cf) \
|
||||
$@ $(PRIVATE_JAR_MANIFEST) -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) .
|
||||
$(if $(PRIVATE_JAR_PACKAGES), \
|
||||
$(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -mindepth 1 -type f \
|
||||
$(foreach pkg, $(PRIVATE_JAR_PACKAGES), \
|
||||
-not -path $(PRIVATE_CLASS_INTERMEDIATES_DIR)/$(subst .,/,$(pkg))/\*) -delete ; \
|
||||
find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -empty -delete)
|
||||
$(if $(PRIVATE_JAR_EXCLUDE_PACKAGES), $(hide) rm -rf \
|
||||
$(foreach pkg, $(PRIVATE_JAR_EXCLUDE_PACKAGES), \
|
||||
$(PRIVATE_CLASS_INTERMEDIATES_DIR)/$(subst .,/,$(pkg))))
|
||||
$(if $(PRIVATE_RMTYPEDEFS), $(hide) $(RMTYPEDEFS) -v $(PRIVATE_CLASS_INTERMEDIATES_DIR))
|
||||
$(if $(PRIVATE_JAR_MANIFEST), \
|
||||
$(hide) sed -e 's/%BUILD_NUMBER%/$(BUILD_NUMBER)/' \
|
||||
$(PRIVATE_JAR_MANIFEST) > $(dir $@)/manifest.mf && \
|
||||
jar -cfm $@ $(dir $@)/manifest.mf \
|
||||
-C $(PRIVATE_CLASS_INTERMEDIATES_DIR) ., \
|
||||
$(hide) jar -cf $@ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) .)
|
||||
$(hide) mv $(PRIVATE_CLASS_INTERMEDIATES_DIR)/newstamp $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stamp
|
||||
endef
|
||||
|
||||
|
@ -1679,7 +1701,7 @@ endef
|
|||
define transform-classes.jar-to-dex
|
||||
@echo "target Dex: $(PRIVATE_MODULE)"
|
||||
@mkdir -p $(dir $@)
|
||||
$(hide) rm -f $(dir $@)/classes*.dex
|
||||
$(hide) rm -f $(dir $@)classes*.dex
|
||||
$(hide) $(DX) \
|
||||
$(if $(findstring windows,$(HOST_OS)),,-JXms16M -JXmx2048M) \
|
||||
--dex --output=$(dir $@) \
|
||||
|
@ -1717,7 +1739,7 @@ endef
|
|||
define add-assets-to-package
|
||||
$(hide) $(AAPT) package -u $(PRIVATE_AAPT_FLAGS) \
|
||||
$(addprefix -c , $(PRIVATE_PRODUCT_AAPT_CONFIG)) \
|
||||
$(addprefix --preferred-configurations , $(PRIVATE_PRODUCT_AAPT_PREF_CONFIG)) \
|
||||
$(addprefix --preferred-density , $(PRIVATE_PRODUCT_AAPT_PREF_CONFIG)) \
|
||||
$(addprefix -M , $(PRIVATE_ANDROID_MANIFEST)) \
|
||||
$(addprefix -S , $(PRIVATE_RESOURCE_DIR)) \
|
||||
$(addprefix -A , $(PRIVATE_ASSET_DIR)) \
|
||||
|
@ -1752,7 +1774,7 @@ endef
|
|||
|
||||
#TODO: update the manifest to point to the dex file
|
||||
define add-dex-to-package
|
||||
$(hide) zip -qj $@ $(dir $(PRIVATE_DEX_FILE))/classes*.dex
|
||||
$(hide) zip -qj $@ $(dir $(PRIVATE_DEX_FILE))classes*.dex
|
||||
endef
|
||||
|
||||
# Add java resources added by the current module.
|
||||
|
@ -2001,8 +2023,8 @@ $(eval _isfds_value :=))
|
|||
endef
|
||||
|
||||
# $(1): The file(s) to check (often $@)
|
||||
# $(2): The maximum total image size, in decimal bytes
|
||||
# $(3): the type of filesystem "yaffs" or "raw"
|
||||
# $(2): The maximum total image size, in decimal bytes.
|
||||
# Make sure to take into account any reserved space needed for the FS.
|
||||
#
|
||||
# If $(2) is empty, evaluates to "true"
|
||||
#
|
||||
|
@ -2015,15 +2037,9 @@ $(if $(2), \
|
|||
total=$$(( $$( echo "$$size" ) )); \
|
||||
printname=$$(echo -n "$(1)" | tr " " +); \
|
||||
img_blocksize=$(call image-size-from-data-size,$(BOARD_FLASH_BLOCK_SIZE)); \
|
||||
if [ "$(3)" == "yaffs" ]; then \
|
||||
reservedblocks=8; \
|
||||
else \
|
||||
reservedblocks=0; \
|
||||
fi; \
|
||||
twoblocks=$$((img_blocksize * 2)); \
|
||||
onepct=$$((((($(2) / 100) - 1) / img_blocksize + 1) * img_blocksize)); \
|
||||
reserve=$$(((twoblocks > onepct ? twoblocks : onepct) + \
|
||||
reservedblocks * img_blocksize)); \
|
||||
reserve=$$((twoblocks > onepct ? twoblocks : onepct)); \
|
||||
maxsize=$$(($(2) - reserve)); \
|
||||
echo "$$printname maxsize=$$maxsize blocksize=$$img_blocksize total=$$total reserve=$$reserve"; \
|
||||
if [ "$$total" -gt "$$maxsize" ]; then \
|
||||
|
@ -2045,8 +2061,7 @@ endef
|
|||
# $(2): The partition size.
|
||||
define assert-max-image-size
|
||||
$(if $(2), \
|
||||
$(call assert-max-file-size,$(1),$(call image-size-from-data-size,$(2))), \
|
||||
true)
|
||||
$(call assert-max-file-size,$(1),$(call image-size-from-data-size,$(2))))
|
||||
endef
|
||||
|
||||
|
||||
|
@ -2145,17 +2160,19 @@ endef
|
|||
# $(1) target
|
||||
# $(2) stable api file
|
||||
# $(3) api file to be tested
|
||||
# $(4) arguments for apicheck
|
||||
# $(5) command to run if apicheck failed
|
||||
# $(6) target dependent on this api check
|
||||
# $(7) additional dependencies
|
||||
# $(4) stable removed api file
|
||||
# $(5) removed api file to be tested
|
||||
# $(6) arguments for apicheck
|
||||
# $(7) command to run if apicheck failed
|
||||
# $(8) target dependent on this api check
|
||||
# $(9) additional dependencies
|
||||
define check-api
|
||||
$(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/$(strip $(1))-timestamp: $(2) $(3) $(APICHECK) $(7)
|
||||
$(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/$(strip $(1))-timestamp: $(2) $(3) $(4) $(APICHECK) $(9)
|
||||
@echo "Checking API:" $(1)
|
||||
$(hide) ( $(APICHECK_COMMAND) $(4) $(2) $(3) || ( $(5) ; exit 38 ) )
|
||||
$(hide) ( $(APICHECK_COMMAND) $(6) $(2) $(3) $(4) $(5) || ( $(7) ; exit 38 ) )
|
||||
$(hide) mkdir -p $$(dir $$@)
|
||||
$(hide) touch $$@
|
||||
$(6): $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/$(strip $(1))-timestamp
|
||||
$(8): $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/$(strip $(1))-timestamp
|
||||
endef
|
||||
|
||||
## Whether to build from source if prebuilt alternative exists
|
||||
|
@ -2182,11 +2199,13 @@ define include-if-build-from-source
|
|||
$(if $(call if-build-from-source,$(2),$(3)),$(eval include $(1)))
|
||||
endef
|
||||
|
||||
## Return the arch for the source file of a prebuilt
|
||||
# Return the arch for the source file of a prebuilt
|
||||
# Return "none" if no matching arch found, so the result can be passed to
|
||||
# LOCAL_MODULE_TARGET_ARCH.
|
||||
# $(1) the list of archs supported by the prebuilt
|
||||
define get-prebuilt-src-arch
|
||||
$(strip $(if $(filter $(TARGET_ARCH),$(1)),$(TARGET_ARCH),\
|
||||
$(if $(filter $(TARGET_2ND_ARCH),$(1)),$(TARGET_2ND_ARCH))))
|
||||
$(if $(filter $(TARGET_2ND_ARCH),$(1)),$(TARGET_2ND_ARCH),none)))
|
||||
endef
|
||||
|
||||
###########################################################
|
||||
|
|
|
@ -10,6 +10,8 @@ DEXPREOPT_BOOT_JARS := $(subst $(space),:,$(PRODUCT_BOOT_JARS))
|
|||
DEXPREOPT_BOOT_JARS_MODULES := $(PRODUCT_BOOT_JARS)
|
||||
PRODUCT_BOOTCLASSPATH := $(subst $(space),:,$(foreach m,$(DEXPREOPT_BOOT_JARS_MODULES),/system/framework/$(m).jar))
|
||||
|
||||
PRODUCT_SYSTEM_SERVER_CLASSPATH := $(subst $(space),:,$(foreach m,$(PRODUCT_SYSTEM_SERVER_JARS),/system/framework/$(m).jar))
|
||||
|
||||
DEXPREOPT_BUILD_DIR := $(OUT_DIR)
|
||||
DEXPREOPT_PRODUCT_DIR_FULL_PATH := $(PRODUCT_OUT)/dex_bootjars
|
||||
DEXPREOPT_PRODUCT_DIR := $(patsubst $(DEXPREOPT_BUILD_DIR)/%,%,$(DEXPREOPT_PRODUCT_DIR_FULL_PATH))
|
||||
|
|
|
@ -30,7 +30,7 @@ endif
|
|||
ifdef LOCAL_UNINSTALLABLE_MODULE
|
||||
LOCAL_DEX_PREOPT :=
|
||||
endif
|
||||
ifeq (,$(strip $(all_java_sources)$(full_static_java_libs)$(my_prebuilt_src_file))) # contains no java code
|
||||
ifeq (,$(strip $(built_dex)$(my_prebuilt_src_file))) # contains no java code
|
||||
LOCAL_DEX_PREOPT :=
|
||||
endif
|
||||
# if module oat file requested in data, disable LOCAL_DEX_PREOPT, will default location to dalvik-cache
|
||||
|
|
|
@ -64,12 +64,15 @@ ifneq ($(LOCAL_SDK_VERSION),)
|
|||
# Use android_stubs_current if LOCAL_SDK_VERSION is current and no TARGET_BUILD_APPS.
|
||||
LOCAL_JAVA_LIBRARIES := android_stubs_current $(LOCAL_JAVA_LIBRARIES)
|
||||
$(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, android_stubs_current)
|
||||
else ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),system_current)
|
||||
LOCAL_JAVA_LIBRARIES := android_system_stubs_current $(LOCAL_JAVA_LIBRARIES)
|
||||
$(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, android_system_stubs_current)
|
||||
else
|
||||
LOCAL_JAVA_LIBRARIES := sdk_v$(LOCAL_SDK_VERSION) $(LOCAL_JAVA_LIBRARIES)
|
||||
$(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, sdk_v$(LOCAL_SDK_VERSION))
|
||||
endif
|
||||
else
|
||||
LOCAL_JAVA_LIBRARIES := core-libart ext framework framework2 $(LOCAL_JAVA_LIBRARIES)
|
||||
LOCAL_JAVA_LIBRARIES := core-libart ext framework $(LOCAL_JAVA_LIBRARIES)
|
||||
$(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, core-libart)
|
||||
endif # LOCAL_SDK_VERSION
|
||||
LOCAL_JAVA_LIBRARIES := $(sort $(LOCAL_JAVA_LIBRARIES))
|
||||
|
@ -134,15 +137,13 @@ $(full_target): PRIVATE_CUSTOM_TEMPLATE_DIR := $(LOCAL_DROIDDOC_CUSTOM_TEMPLATE_
|
|||
$(full_target): PRIVATE_IN_CUSTOM_ASSET_DIR := $(LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR)/$(LOCAL_DROIDDOC_CUSTOM_ASSET_DIR)
|
||||
$(full_target): PRIVATE_OUT_ASSET_DIR := $(out_dir)/$(LOCAL_DROIDDOC_ASSET_DIR)
|
||||
$(full_target): PRIVATE_OUT_CUSTOM_ASSET_DIR := $(out_dir)/$(LOCAL_DROIDDOC_CUSTOM_ASSET_DIR)
|
||||
|
||||
html_dir_files :=
|
||||
ifneq ($(strip $(LOCAL_DROIDDOC_HTML_DIR)),)
|
||||
$(full_target): PRIVATE_DROIDDOC_HTML_DIR := -htmldir $(LOCAL_PATH)/$(LOCAL_DROIDDOC_HTML_DIR)
|
||||
html_dir_files := $(shell find $(LOCAL_PATH)/$(LOCAL_DROIDDOC_HTML_DIR) -type f)
|
||||
else
|
||||
$(full_target): PRIVATE_DROIDDOC_HTML_DIR :=
|
||||
endif
|
||||
ifneq ($(strip $(LOCAL_ADDITIONAL_HTML_DIR)),)
|
||||
$(full_target): PRIVATE_ADDITIONAL_HTML_DIR := -htmldir2 $(LOCAL_PATH)/$(LOCAL_ADDITIONAL_HTML_DIR)
|
||||
else
|
||||
$(full_target): PRIVATE_ADDITIONAL_HTML_DIR :=
|
||||
$(full_target): PRIVATE_DROIDDOC_HTML_DIR :=
|
||||
endif
|
||||
ifneq ($(strip $(LOCAL_ADDITIONAL_HTML_DIR)),)
|
||||
$(full_target): PRIVATE_ADDITIONAL_HTML_DIR := -htmldir2 $(LOCAL_PATH)/$(LOCAL_ADDITIONAL_HTML_DIR)
|
||||
|
@ -153,8 +154,6 @@ endif
|
|||
# TODO: not clear if this is used any more
|
||||
$(full_target): PRIVATE_LOCAL_PATH := $(LOCAL_PATH)
|
||||
|
||||
html_dir_files := $(shell find $(LOCAL_PATH)/$(LOCAL_DROIDDOC_HTML_DIR) -type f)
|
||||
|
||||
$(full_target): $(full_src_files) $(droiddoc_templates) $(droiddoc) $(html_dir_files) $(full_java_lib_deps) $(LOCAL_ADDITIONAL_DEPENDENCIES)
|
||||
@echo Docs droiddoc: $(PRIVATE_OUT_DIR)
|
||||
$(hide) mkdir -p $(dir $@)
|
||||
|
|
|
@ -110,6 +110,15 @@ $(strip_output): PRIVATE_OBJCOPY := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_OBJCOPY
|
|||
$(strip_output): PRIVATE_READELF := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_READELF)
|
||||
$(strip_output): $(strip_input) | $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_STRIP)
|
||||
$(transform-to-stripped-keep-symbols)
|
||||
|
||||
# A product may be configured to strip everything in some build variants.
|
||||
# We do the stripping as a post-install command so that LOCAL_BUILT_MODULE
|
||||
# is still with the symbols and we don't need to clean it (and relink) when
|
||||
# you switch build variant.
|
||||
ifneq ($(filter $(STRIP_EVERYTHING_BUILD_VARIANTS),$(TARGET_BUILD_VARIANT)),)
|
||||
$(LOCAL_INSTALLED_MODULE): PRIVATE_POST_INSTALL_CMD := \
|
||||
$($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_STRIP) --strip-all $(LOCAL_INSTALLED_MODULE)
|
||||
endif
|
||||
else
|
||||
# Don't strip the binary, just copy it. We can't skip this step
|
||||
# because a copy of the binary must appear at LOCAL_BUILT_MODULE.
|
||||
|
|
|
@ -106,11 +106,21 @@ endif
|
|||
# Define them here so they can be used in product config files.
|
||||
TARGET_COPY_OUT_SYSTEM := system
|
||||
TARGET_COPY_OUT_DATA := data
|
||||
TARGET_COPY_OUT_VENDOR := system/vendor
|
||||
TARGET_COPY_OUT_OEM := oem
|
||||
TARGET_COPY_OUT_ROOT := root
|
||||
TARGET_COPY_OUT_RECOVERY := recovery
|
||||
###########################################
|
||||
# Define TARGET_COPY_OUT_VENDOR to a placeholder, for at this point
|
||||
# we don't know if the device wants to build a separate vendor.img
|
||||
# or just build vendor stuff into system.img.
|
||||
# A device can set up TARGET_COPY_OUT_VENDOR to "vendor" in its
|
||||
# BoardConfig.mk.
|
||||
# We'll substitute with the real value after loading BoardConfig.mk.
|
||||
_vendor_path_placeholder := ||VENDOR-PATH-PH||
|
||||
TARGET_COPY_OUT_VENDOR := $(_vendor_path_placeholder)
|
||||
###########################################
|
||||
|
||||
# Read the product specs so we an get TARGET_DEVICE and other
|
||||
# Read the product specs so we can get TARGET_DEVICE and other
|
||||
# variables that we need in order to locate the output files.
|
||||
include $(BUILD_SYSTEM)/product_config.mk
|
||||
|
||||
|
@ -154,6 +164,17 @@ endif
|
|||
TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(board_config_mk)))
|
||||
board_config_mk :=
|
||||
|
||||
###########################################
|
||||
# Now we can substitute with the real value of TARGET_COPY_OUT_VENDOR
|
||||
ifeq ($(TARGET_COPY_OUT_VENDOR),$(_vendor_path_placeholder))
|
||||
TARGET_COPY_OUT_VENDOR := system/vendor
|
||||
else ifeq ($(filter vendor system/vendor,$(TARGET_COPY_OUT_VENDOR)),)
|
||||
$(error TARGET_COPY_OUT_VENDOR must be either 'vendor' or 'system/vendor', seeing '$(TARGET_COPY_OUT_VENDOR)'.)
|
||||
endif
|
||||
PRODUCT_COPY_FILES := $(subst $(_vendor_path_placeholder),$(TARGET_COPY_OUT_VENDOR),$(PRODUCT_COPY_FILES))
|
||||
###########################################
|
||||
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# Set up configuration for target machine.
|
||||
# The following must be set:
|
||||
|
@ -222,6 +243,7 @@ HOST_OUT_HEADERS := $(HOST_OUT_INTERMEDIATES)/include
|
|||
HOST_OUT_INTERMEDIATE_LIBRARIES := $(HOST_OUT_INTERMEDIATES)/lib
|
||||
HOST_OUT_NOTICE_FILES := $(HOST_OUT_INTERMEDIATES)/NOTICE_FILES
|
||||
HOST_OUT_COMMON_INTERMEDIATES := $(HOST_COMMON_OUT_ROOT)/obj
|
||||
HOST_OUT_FAKE := $(HOST_OUT)/fake_packages
|
||||
|
||||
HOST_OUT_GEN := $(HOST_OUT)/gen
|
||||
HOST_OUT_COMMON_GEN := $(HOST_COMMON_OUT_ROOT)/gen
|
||||
|
@ -317,9 +339,26 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_EXECUTABLES := $(TARGET_OUT_VENDO
|
|||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES := $(TARGET_OUT_VENDOR)/lib
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS := $(TARGET_OUT_VENDOR_APPS)
|
||||
|
||||
TARGET_OUT_OEM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_OEM)
|
||||
TARGET_OUT_OEM_EXECUTABLES := $(TARGET_OUT_OEM)/bin
|
||||
ifneq ($(filter %64,$(TARGET_ARCH)),)
|
||||
TARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib64
|
||||
else
|
||||
TARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib
|
||||
endif
|
||||
# We don't expect Java libraries in the oem.img.
|
||||
# TARGET_OUT_OEM_JAVA_LIBRARIES:= $(TARGET_OUT_OEM)/framework
|
||||
TARGET_OUT_OEM_APPS := $(TARGET_OUT_OEM)/app
|
||||
TARGET_OUT_OEM_ETC := $(TARGET_OUT_OEM)/etc
|
||||
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_EXECUTABLES := $(TARGET_OUT_OEM_EXECUTABLES)
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_SHARED_LIBRARIES := $(TARGET_OUT_OEM)/lib
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_OEM_APPS := $(TARGET_OUT_OEM_APPS)
|
||||
|
||||
TARGET_OUT_UNSTRIPPED := $(PRODUCT_OUT)/symbols
|
||||
TARGET_OUT_EXECUTABLES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/bin
|
||||
TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/lib
|
||||
TARGET_OUT_VENDOR_SHARED_LIBRARIES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/$(TARGET_COPY_OUT_VENDOR)/lib
|
||||
TARGET_ROOT_OUT_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)
|
||||
TARGET_ROOT_OUT_SBIN_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/sbin
|
||||
TARGET_ROOT_OUT_BIN_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/bin
|
||||
|
|
|
@ -35,7 +35,6 @@ endif
|
|||
|
||||
# Define PRIVATE_ variables from global vars
|
||||
my_target_global_ld_dirs := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_LD_DIRS)
|
||||
my_target_fdo_lib := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_LIB)
|
||||
my_target_libgcov := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_LIBGCOV)
|
||||
my_target_libgcc := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_LIBGCC)
|
||||
my_target_libatomic := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_LIBATOMIC)
|
||||
|
@ -56,7 +55,6 @@ my_target_crtend_o := $(wildcard $(my_ndk_sysroot_lib)/crtend_android.o)
|
|||
endif
|
||||
$(linked_module): PRIVATE_TARGET_GLOBAL_LD_DIRS := $(my_target_global_ld_dirs)
|
||||
$(linked_module): PRIVATE_TARGET_GLOBAL_LDFLAGS := $(my_target_global_ldflags)
|
||||
$(linked_module): PRIVATE_TARGET_FDO_LIB := $(my_target_fdo_lib)
|
||||
$(linked_module): PRIVATE_TARGET_LIBGCOV := $(my_target_libgcov)
|
||||
$(linked_module): PRIVATE_TARGET_LIBGCC := $(my_target_libgcc)
|
||||
$(linked_module): PRIVATE_TARGET_LIBATOMIC := $(my_target_libatomic)
|
||||
|
|
|
@ -8,17 +8,27 @@
|
|||
# configuration. Note that we require the TARGET_IS_64_BIT
|
||||
# check because 32 bit targets may not define TARGET_PREFER_32_BIT_APPS
|
||||
# et al. since those variables make no sense in that context.
|
||||
|
||||
ifneq ($(LOCAL_IS_HOST_MODULE),true)
|
||||
my_symlink := $(addprefix $(TARGET_OUT)/bin/, $(LOCAL_MODULE))
|
||||
ifeq ($(TARGET_IS_64_BIT),true)
|
||||
ifneq ($(TARGET_PREFER_32_BIT_APPS),true)
|
||||
$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_64)
|
||||
ifeq ($(TARGET_SUPPORTS_64_BIT_APPS)|$(TARGET_SUPPORTS_32_BIT_APPS),true|true)
|
||||
# We support both 32 and 64 bit apps, so we will have to
|
||||
# base our decision on whether the target prefers one or the
|
||||
# other.
|
||||
ifeq ($(TARGET_PREFER_32_BIT_APPS),true)
|
||||
$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32)
|
||||
else
|
||||
$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_64)
|
||||
endif
|
||||
else ifeq ($(TARGET_SUPPORTS_64_BIT_APPS),true)
|
||||
# We support only 64 bit apps.
|
||||
$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_64)
|
||||
else
|
||||
$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32)
|
||||
# We support only 32 bit apps.
|
||||
$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32)
|
||||
endif
|
||||
else
|
||||
$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32)
|
||||
$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32)
|
||||
endif
|
||||
else
|
||||
my_symlink := $(addprefix $(HOST_OUT)/bin/, $(LOCAL_MODULE))
|
||||
|
|
|
@ -67,6 +67,7 @@ $(full_classes_compiled_jar): PRIVATE_JAVA_LAYERS_FILE := $(layers_file)
|
|||
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
|
||||
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES :=
|
||||
$(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES :=
|
||||
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_PACKAGES :=
|
||||
$(full_classes_compiled_jar): PRIVATE_RMTYPEDEFS :=
|
||||
$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
|
||||
$(jar_manifest_file) $(proto_java_sources_file_stamp) $(LOCAL_ADDITIONAL_DEPENDENCIES)
|
||||
|
|
|
@ -20,21 +20,65 @@
|
|||
|
||||
#######################################
|
||||
include $(BUILD_SYSTEM)/host_java_library_common.mk
|
||||
#######################################
|
||||
|
||||
# Enable emma instrumentation only if the module asks so.
|
||||
ifeq (true,$(LOCAL_EMMA_INSTRUMENT))
|
||||
ifneq (true,$(EMMA_INSTRUMENT))
|
||||
LOCAL_EMMA_INSTRUMENT :=
|
||||
endif
|
||||
endif
|
||||
|
||||
full_classes_compiled_jar := $(intermediates.COMMON)/classes-full-debug.jar
|
||||
emma_intermediates_dir := $(intermediates.COMMON)/emma_out
|
||||
# emma is hardcoded to use the leaf name of its input for the output file --
|
||||
# only the output directory can be changed
|
||||
full_classes_emma_jar := $(emma_intermediates_dir)/lib/$(notdir $(full_classes_compiled_jar))
|
||||
|
||||
LOCAL_INTERMEDIATE_TARGETS += \
|
||||
$(full_classes_compiled_jar) \
|
||||
$(full_classes_emma_jar)
|
||||
|
||||
#######################################
|
||||
include $(BUILD_SYSTEM)/base_rules.mk
|
||||
#######################################
|
||||
|
||||
$(full_classes_compiled_jar): PRIVATE_JAVAC_DEBUG_FLAGS := -g
|
||||
ifeq (true,$(LOCAL_EMMA_INSTRUMENT))
|
||||
$(full_classes_emma_jar): PRIVATE_EMMA_COVERAGE_FILE := $(intermediates.COMMON)/coverage.em
|
||||
$(full_classes_emma_jar): PRIVATE_EMMA_INTERMEDIATES_DIR := $(emma_intermediates_dir)
|
||||
ifdef LOCAL_EMMA_COVERAGE_FILTER
|
||||
$(full_classes_emma_jar): PRIVATE_EMMA_COVERAGE_FILTER := $(LOCAL_EMMA_COVERAGE_FILTER)
|
||||
else
|
||||
# by default, avoid applying emma instrumentation onto emma classes itself,
|
||||
# otherwise there will be exceptions thrown
|
||||
$(full_classes_emma_jar): PRIVATE_EMMA_COVERAGE_FILTER := *,-emma,-emmarun,-com.vladium.*
|
||||
endif
|
||||
# this rule will generate both $(PRIVATE_EMMA_COVERAGE_FILE) and
|
||||
# $(full_classes_emma_jar)
|
||||
$(full_classes_emma_jar) : $(full_classes_compiled_jar) | $(EMMA_JAR)
|
||||
$(transform-classes.jar-to-emma)
|
||||
|
||||
java_alternative_checked_module :=
|
||||
$(LOCAL_BUILT_MODULE) : $(full_classes_emma_jar)
|
||||
@echo Copying: $@
|
||||
$(hide) $(ACP) -fp $< $@
|
||||
|
||||
else # LOCAL_EMMA_INSTRUMENT
|
||||
# Directly build into LOCAL_BUILT_MODULE.
|
||||
full_classes_compiled_jar := $(LOCAL_BUILT_MODULE)
|
||||
endif # LOCAL_EMMA_INSTRUMENT
|
||||
|
||||
$(full_classes_compiled_jar): PRIVATE_JAVAC_DEBUG_FLAGS := -g
|
||||
|
||||
# The layers file allows you to enforce a layering between java packages.
|
||||
# Run build/tools/java-layers.py for more details.
|
||||
layers_file := $(addprefix $(LOCAL_PATH)/, $(LOCAL_JAVA_LAYERS_FILE))
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_JAVA_LAYERS_FILE := $(layers_file)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_JAR_EXCLUDE_FILES :=
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_JAVA_LAYERS_FILE := $(layers_file)
|
||||
$(LOCAL_BUILT_MODULE): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
|
||||
$(full_classes_compiled_jar): PRIVATE_JAVA_LAYERS_FILE := $(layers_file)
|
||||
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
|
||||
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES :=
|
||||
$(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES :=
|
||||
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_PACKAGES :=
|
||||
$(full_classes_compiled_jar): PRIVATE_RMTYPEDEFS :=
|
||||
$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
|
||||
$(jar_manifest_file) $(proto_java_sources_file_stamp) $(LOCAL_ADDITIONAL_DEPENDENCIES)
|
||||
$(transform-host-java-to-package)
|
||||
|
|
|
@ -2,7 +2,14 @@
|
|||
## Shared definitions for all host test compilations.
|
||||
#####################################################
|
||||
|
||||
LOCAL_CFLAGS += -DGTEST_OS_LINUX -DGTEST_HAS_STD_STRING -O0 -g
|
||||
ifeq ($(HOST_OS),windows)
|
||||
LOCAL_CFLAGS += -DGTEST_OS_WINDOWS
|
||||
else
|
||||
LOCAL_CFLAGS += -DGTEST_OS_LINUX
|
||||
LOCAL_LDLIBS += -lpthread
|
||||
endif
|
||||
|
||||
LOCAL_CFLAGS += -DGTEST_HAS_STD_STRING -O0 -g
|
||||
LOCAL_C_INCLUDES += external/gtest/include
|
||||
|
||||
my_test_libcxx := false
|
||||
|
@ -19,4 +26,3 @@ LOCAL_STATIC_LIBRARIES += libgtest_host libgtest_main_host
|
|||
LOCAL_SHARED_LIBRARIES +=
|
||||
endif
|
||||
|
||||
LOCAL_LDLIBS += -lpthread
|
||||
|
|
|
@ -18,7 +18,7 @@ my_jni_shared_libraries := \
|
|||
$(LOCAL_JNI_SHARED_LIBRARIES)))
|
||||
|
||||
# App-specific lib path.
|
||||
my_app_lib_path := $($(my_2nd_arch_prefix)TARGET_OUT$(partition_tag)_SHARED_LIBRARIES)/$(basename $(my_installed_module_stem))
|
||||
my_app_lib_path := $(dir $(LOCAL_INSTALLED_MODULE))lib/$(TARGET_$(my_2nd_arch_prefix)ARCH)
|
||||
my_extracted_jni_libs :=
|
||||
|
||||
ifdef my_embed_jni
|
||||
|
@ -54,16 +54,20 @@ ifneq ($(my_jni_shared_libraries),)
|
|||
# The jni libaries will be installed to the system.img.
|
||||
my_jni_filenames := $(notdir $(my_jni_shared_libraries))
|
||||
# Make sure the JNI libraries get installed
|
||||
$(LOCAL_INSTALLED_MODULE) : | $(addprefix $($(my_2nd_arch_prefix)TARGET_OUT$(partition_tag)_SHARED_LIBRARIES)/, $(my_jni_filenames))
|
||||
my_shared_library_path := $($(my_2nd_arch_prefix)TARGET_OUT$(partition_tag)_SHARED_LIBRARIES)
|
||||
$(LOCAL_INSTALLED_MODULE) : | $(addprefix $(my_shared_library_path)/, $(my_jni_filenames))
|
||||
|
||||
# Create symlink in the app specific lib path
|
||||
ifdef LOCAL_POST_INSTALL_CMD
|
||||
# Add a shell command separator
|
||||
LOCAL_POST_INSTALL_CMD += ;
|
||||
endif
|
||||
|
||||
my_symlink_target_dir := $(patsubst $(PRODUCT_OUT)%,%,\
|
||||
$(my_shared_library_path))
|
||||
LOCAL_POST_INSTALL_CMD += \
|
||||
mkdir -p $(my_app_lib_path) \
|
||||
$(foreach lib, $(my_jni_filenames), ;ln -sf ../$(lib) $(my_app_lib_path)/$(lib))
|
||||
$(foreach lib, $(my_jni_filenames), ;ln -sf $(my_symlink_target_dir)/$(lib) $(my_app_lib_path)/$(lib))
|
||||
$(LOCAL_INSTALLED_MODULE): PRIVATE_POST_INSTALL_CMD := $(LOCAL_POST_INSTALL_CMD)
|
||||
|
||||
# Clear jni_shared_libraries to not embed it into the apk.
|
||||
|
|
19
core/java.mk
19
core/java.mk
|
@ -26,6 +26,8 @@ ifneq ($(LOCAL_SDK_VERSION),)
|
|||
ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),current)
|
||||
# Use android_stubs_current if LOCAL_SDK_VERSION is current and no TARGET_BUILD_APPS.
|
||||
LOCAL_JAVA_LIBRARIES := android_stubs_current $(LOCAL_JAVA_LIBRARIES)
|
||||
else ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),system_current)
|
||||
LOCAL_JAVA_LIBRARIES := android_system_stubs_current $(LOCAL_JAVA_LIBRARIES)
|
||||
else
|
||||
LOCAL_JAVA_LIBRARIES := sdk_v$(LOCAL_SDK_VERSION) $(LOCAL_JAVA_LIBRARIES)
|
||||
endif
|
||||
|
@ -142,7 +144,7 @@ renderscript_target_api := $(LOCAL_RENDERSCRIPT_TARGET_API)
|
|||
else
|
||||
ifneq (,$(LOCAL_SDK_VERSION))
|
||||
# Set target-api for LOCAL_SDK_VERSIONs other than current.
|
||||
ifneq (,$(filter-out current, $(LOCAL_SDK_VERSION)))
|
||||
ifneq (,$(filter-out current system_current, $(LOCAL_SDK_VERSION)))
|
||||
renderscript_target_api := $(LOCAL_SDK_VERSION)
|
||||
endif
|
||||
endif # LOCAL_SDK_VERSION is set
|
||||
|
@ -158,7 +160,7 @@ renderscript_flags := -Wall -Werror
|
|||
renderscript_flags += $(LOCAL_RENDERSCRIPT_FLAGS)
|
||||
|
||||
# prepend the RenderScript system include path
|
||||
ifneq ($(filter-out current,$(LOCAL_SDK_VERSION))$(if $(TARGET_BUILD_APPS),$(filter current,$(LOCAL_SDK_VERSION))),)
|
||||
ifneq ($(filter-out current system_current,$(LOCAL_SDK_VERSION))$(if $(TARGET_BUILD_APPS),$(filter current system_current,$(LOCAL_SDK_VERSION))),)
|
||||
# if a numeric LOCAL_SDK_VERSION, or current LOCAL_SDK_VERSION with TARGET_BUILD_APPS
|
||||
LOCAL_RENDERSCRIPT_INCLUDES := \
|
||||
$(HISTORICAL_SDK_VERSIONS_ROOT)/renderscript/clang-include \
|
||||
|
@ -321,6 +323,10 @@ layers_file := $(addprefix $(LOCAL_PATH)/, $(LOCAL_JAVA_LAYERS_FILE))
|
|||
$(full_classes_compiled_jar): PRIVATE_JAVA_LAYERS_FILE := $(layers_file)
|
||||
$(full_classes_compiled_jar): PRIVATE_WARNINGS_ENABLE := $(LOCAL_WARNINGS_ENABLE)
|
||||
|
||||
ifdef LOCAL_RMTYPEDEFS
|
||||
$(full_classes_compiled_jar): | $(RMTYPEDEFS)
|
||||
endif
|
||||
|
||||
# Compile the java files to a .jar file.
|
||||
# This intentionally depends on java_sources, not all_java_sources.
|
||||
# Deps for generated source files must be handled separately,
|
||||
|
@ -328,6 +334,8 @@ $(full_classes_compiled_jar): PRIVATE_WARNINGS_ENABLE := $(LOCAL_WARNINGS_ENABLE
|
|||
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
|
||||
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES := $(LOCAL_JAR_EXCLUDE_FILES)
|
||||
$(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES := $(LOCAL_JAR_PACKAGES)
|
||||
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_PACKAGES := $(LOCAL_JAR_EXCLUDE_PACKAGES)
|
||||
$(full_classes_compiled_jar): PRIVATE_RMTYPEDEFS := $(LOCAL_RMTYPEDEFS)
|
||||
$(full_classes_compiled_jar): PRIVATE_DONT_DELETE_JAR_META_INF := $(LOCAL_DONT_DELETE_JAR_META_INF)
|
||||
$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
|
||||
$(jar_manifest_file) $(layers_file) $(RenderScript_file_stamp) \
|
||||
|
@ -378,7 +386,7 @@ $(full_classes_jar): $(full_classes_emma_jar) | $(ACP)
|
|||
|
||||
# Run proguard if necessary, otherwise just copy the file.
|
||||
ifdef LOCAL_PROGUARD_ENABLED
|
||||
ifneq ($(filter-out full custom nosystem obfuscation optimization,$(LOCAL_PROGUARD_ENABLED)),)
|
||||
ifneq ($(filter-out full custom nosystem obfuscation optimization shrinktests,$(LOCAL_PROGUARD_ENABLED)),)
|
||||
$(warning while processing: $(LOCAL_MODULE))
|
||||
$(error invalid value for LOCAL_PROGUARD_ENABLED: $(LOCAL_PROGUARD_ENABLED))
|
||||
endif
|
||||
|
@ -395,6 +403,9 @@ endif
|
|||
# If this is a test package, add proguard keep flags for tests.
|
||||
ifneq ($(LOCAL_INSTRUMENTATION_FOR)$(filter tests,$(LOCAL_MODULE_TAGS)),)
|
||||
proguard_flags += -include $(BUILD_SYSTEM)/proguard_tests.flags
|
||||
ifeq ($(filter shrinktests,$(LOCAL_PROGUARD_ENABLED)),)
|
||||
proguard_flags += -dontshrink # don't shrink tests by default
|
||||
endif # shrinktests
|
||||
endif # test package
|
||||
ifeq ($(filter obfuscation,$(LOCAL_PROGUARD_ENABLED)),)
|
||||
# By default no obfuscation
|
||||
|
@ -499,7 +510,7 @@ $(LOCAL_MODULE)-findbugs : $(findbugs_html)
|
|||
$(findbugs_html) : $(findbugs_xml)
|
||||
@mkdir -p $(dir $@)
|
||||
@echo ConvertXmlToText: $@
|
||||
$(hide) prebuilt/common/findbugs/bin/convertXmlToText -html:fancy.xsl $(PRIVATE_XML_FILE) \
|
||||
$(hide) $(FINDBUGS_DIR)/convertXmlToText -html:fancy.xsl $(PRIVATE_XML_FILE) \
|
||||
> $@
|
||||
|
||||
$(LOCAL_MODULE)-findbugs : $(findbugs_html)
|
||||
|
|
30
core/main.mk
30
core/main.mk
|
@ -185,12 +185,8 @@ ifeq ($(requires_openjdk), true)
|
|||
# java version is really openjdk
|
||||
ifeq ($(shell echo '$(java_version_str)' | grep -i openjdk),)
|
||||
$(info ************************************************************)
|
||||
$(info You are attempting to build with an unsupported JDK.)
|
||||
$(info $(space))
|
||||
$(info This build requires OpenJDK, but you are using:)
|
||||
$(info You asked for an OpenJDK 7 build but your version is)
|
||||
$(info $(java_version_str).)
|
||||
$(info Please follow the machine setup instructions at)
|
||||
$(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html)
|
||||
$(info ************************************************************)
|
||||
$(error stop)
|
||||
endif # java version is not OpenJdk
|
||||
|
@ -381,10 +377,12 @@ ifneq ($(filter ro.setupwizard.mode=ENABLED, $(call collapse-pairs, $(ADDITIONAL
|
|||
$(call collapse-pairs, $(ADDITIONAL_BUILD_PROPERTIES))) \
|
||||
ro.setupwizard.mode=OPTIONAL
|
||||
endif
|
||||
# Don't even verify the image on eng builds to speed startup
|
||||
ADDITIONAL_BUILD_PROPERTIES += dalvik.vm.image-dex2oat-filter=verify-none
|
||||
# Don't compile apps on eng builds to speed startup
|
||||
ADDITIONAL_BUILD_PROPERTIES += dalvik.vm.dex2oat-filter=interpret-only
|
||||
ifndef is_sdk_build
|
||||
# Don't even verify the image on eng builds to speed startup
|
||||
ADDITIONAL_BUILD_PROPERTIES += dalvik.vm.image-dex2oat-filter=verify-none
|
||||
# Don't compile apps on eng builds to speed startup
|
||||
ADDITIONAL_BUILD_PROPERTIES += dalvik.vm.dex2oat-filter=interpret-only
|
||||
endif
|
||||
endif
|
||||
|
||||
## sdk ##
|
||||
|
@ -395,7 +393,7 @@ ifdef is_sdk_build
|
|||
sdk_repo_goal := $(strip $(filter sdk_repo,$(MAKECMDGOALS)))
|
||||
MAKECMDGOALS := $(strip $(filter-out sdk_repo,$(MAKECMDGOALS)))
|
||||
|
||||
ifneq ($(words $(filter-out $(INTERNAL_MODIFIER_TARGETS) checkbuild,$(MAKECMDGOALS))),1)
|
||||
ifneq ($(words $(filter-out $(INTERNAL_MODIFIER_TARGETS) checkbuild emulator_tests target-files-package,$(MAKECMDGOALS))),1)
|
||||
$(error The 'sdk' target may not be specified with any other targets)
|
||||
endif
|
||||
|
||||
|
@ -773,7 +771,7 @@ ifdef is_sdk_build
|
|||
$(if $(strip $(ALL_MODULES.$(m).INSTALLED) $(ALL_MODULES.$(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX).INSTALLED)),,\
|
||||
$(eval dangling_modules += $(m))))
|
||||
ifneq ($(dangling_modules),)
|
||||
$(warning Module names '$(dangling_modules)' in PRODUCT_PACKAGES has nothing to install!)
|
||||
$(warning: Modules '$(dangling_modules)' in PRODUCT_PACKAGES have nothing to install!)
|
||||
endif
|
||||
$(foreach m, $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES_DEBUG), \
|
||||
$(if $(strip $(ALL_MODULES.$(m).INSTALLED)),,\
|
||||
|
@ -965,6 +963,7 @@ else # TARGET_BUILD_APPS
|
|||
$(foreach f,$(INSTALLED_RADIOIMAGE_TARGET), \
|
||||
$(call dist-for-goals, droidcore, $(f)))
|
||||
|
||||
ifneq ($(ANDROID_BUILD_EMBEDDED),true)
|
||||
ifneq ($(TARGET_BUILD_PDK),true)
|
||||
$(call dist-for-goals, droidcore, \
|
||||
$(APPS_ZIP) \
|
||||
|
@ -972,6 +971,7 @@ else # TARGET_BUILD_APPS
|
|||
$(PACKAGE_STATS_FILE) \
|
||||
)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(EMMA_INSTRUMENT),true)
|
||||
$(EMMA_META_ZIP) : $(INSTALLED_SYSTEMIMAGE)
|
||||
|
@ -1011,6 +1011,12 @@ target-java-tests : java-target-tests
|
|||
target-native-tests : native-target-tests
|
||||
tests : host-tests target-tests
|
||||
|
||||
# To catch more build breakage, check build tests modules in eng and userdebug builds.
|
||||
ifneq ($(TARGET_BUILD_PDK),true)
|
||||
ifneq ($(filter eng userdebug,$(TARGET_BUILD_VARIANT)),)
|
||||
droidcore : target-tests host-tests
|
||||
endif
|
||||
endif
|
||||
|
||||
.PHONY: lintall
|
||||
|
||||
|
@ -1035,7 +1041,7 @@ findbugs: $(INTERNAL_FINDBUGS_HTML_TARGET) $(INTERNAL_FINDBUGS_XML_TARGET)
|
|||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@rm -rf $(OUT_DIR)
|
||||
@rm -rf $(OUT_DIR)/*
|
||||
@echo "Entire build directory removed."
|
||||
|
||||
.PHONY: clobber
|
||||
|
|
|
@ -69,7 +69,11 @@ $(foreach t,$(1), \
|
|||
$(if $(7), \
|
||||
$(eval LOCAL_BUILT_MODULE_STEM := $(7)) \
|
||||
, \
|
||||
$(eval LOCAL_BUILT_MODULE_STEM := $(notdir $(LOCAL_SRC_FILES))) \
|
||||
$(if $(word 2,$(tw)), \
|
||||
$(eval LOCAL_BUILT_MODULE_STEM := $(LOCAL_MODULE)$(suffix $(LOCAL_SRC_FILES))) \
|
||||
, \
|
||||
$(eval LOCAL_BUILT_MODULE_STEM := $(notdir $(LOCAL_SRC_FILES))) \
|
||||
) \
|
||||
) \
|
||||
$(eval LOCAL_MODULE_SUFFIX := $(suffix $(LOCAL_SRC_FILES))) \
|
||||
$(if $(filter user,$(TARGET_BUILD_VARIANT)), \
|
||||
|
|
|
@ -52,16 +52,6 @@ $(error $(LOCAL_PATH): Package modules may not define LOCAL_MODULE)
|
|||
endif
|
||||
LOCAL_MODULE := $(LOCAL_PACKAGE_NAME)
|
||||
|
||||
ifeq ($(strip $(LOCAL_MANIFEST_FILE)),)
|
||||
LOCAL_MANIFEST_FILE := AndroidManifest.xml
|
||||
endif
|
||||
|
||||
# If you need to put the MANIFEST_FILE outside of LOCAL_PATH
|
||||
# you can use FULL_MANIFEST_FILE
|
||||
ifeq ($(strip $(LOCAL_FULL_MANIFEST_FILE)),)
|
||||
LOCAL_FULL_MANIFEST_FILE := $(LOCAL_PATH)/$(LOCAL_MANIFEST_FILE)
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LOCAL_MODULE_CLASS)),)
|
||||
$(error $(LOCAL_PATH): Package modules may not set LOCAL_MODULE_CLASS)
|
||||
endif
|
||||
|
@ -78,6 +68,10 @@ ifeq ($(filter tests, $(LOCAL_MODULE_TAGS)),)
|
|||
LOCAL_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) -z
|
||||
endif
|
||||
|
||||
ifdef LOCAL_PACKAGE_SPLITS
|
||||
LOCAL_AAPT_FLAGS += $(addprefix --split ,$(LOCAL_PACKAGE_SPLITS))
|
||||
endif
|
||||
|
||||
need_compile_asset :=
|
||||
ifeq (,$(LOCAL_ASSET_DIR))
|
||||
LOCAL_ASSET_DIR := $(LOCAL_PATH)/assets
|
||||
|
@ -101,8 +95,14 @@ package_resource_overlays := $(strip \
|
|||
|
||||
LOCAL_RESOURCE_DIR := $(package_resource_overlays) $(LOCAL_RESOURCE_DIR)
|
||||
|
||||
all_assets := $(call find-subdir-assets,$(LOCAL_ASSET_DIR))
|
||||
all_assets := $(addprefix $(LOCAL_ASSET_DIR)/,$(patsubst assets/%,%,$(all_assets)))
|
||||
all_assets := $(strip \
|
||||
$(foreach dir, $(LOCAL_ASSET_DIR), \
|
||||
$(addprefix $(dir)/, \
|
||||
$(patsubst assets/%,%, \
|
||||
$(call find-subdir-assets, $(dir)) \
|
||||
) \
|
||||
) \
|
||||
))
|
||||
|
||||
ifneq ($(all_assets),)
|
||||
need_compile_asset := true
|
||||
|
@ -141,6 +141,7 @@ LOCAL_INTERMEDIATE_TARGETS += $(R_file_stamp)
|
|||
endif
|
||||
|
||||
LOCAL_BUILT_MODULE_STEM := package.apk
|
||||
LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE).apk
|
||||
|
||||
LOCAL_PROGUARD_ENABLED:=$(strip $(LOCAL_PROGUARD_ENABLED))
|
||||
ifndef LOCAL_PROGUARD_ENABLED
|
||||
|
@ -200,10 +201,11 @@ ifeq ($(LOCAL_SDK_RES_VERSION),)
|
|||
LOCAL_SDK_RES_VERSION:=$(LOCAL_SDK_VERSION)
|
||||
endif
|
||||
|
||||
full_android_manifest := $(LOCAL_FULL_MANIFEST_FILE)
|
||||
include $(BUILD_SYSTEM)/android_manifest.mk
|
||||
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): \
|
||||
PRIVATE_ANDROID_MANIFEST := $(full_android_manifest)
|
||||
ifneq (,$(filter-out current, $(LOCAL_SDK_VERSION)))
|
||||
ifneq (,$(filter-out current system_current, $(LOCAL_SDK_VERSION)))
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): \
|
||||
PRIVATE_DEFAULT_APP_TARGET_SDK := $(LOCAL_SDK_VERSION)
|
||||
else
|
||||
|
@ -251,6 +253,7 @@ $(R_file_stamp): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_
|
|||
|
||||
$(proguard_options_file): $(R_file_stamp)
|
||||
|
||||
resource_export_package :=
|
||||
ifdef LOCAL_EXPORT_PACKAGE_RESOURCES
|
||||
# Put this module's resources into a PRODUCT-agnositc package that
|
||||
# other packages can use to build their own PRODUCT-agnostic R.java (etc.)
|
||||
|
@ -290,7 +293,7 @@ else
|
|||
# Most packages should link against the resources defined by framework-res.
|
||||
# Even if they don't have their own resources, they may use framework
|
||||
# resources.
|
||||
ifneq ($(filter-out current,$(LOCAL_SDK_RES_VERSION))$(if $(TARGET_BUILD_APPS),$(filter current,$(LOCAL_SDK_RES_VERSION))),)
|
||||
ifneq ($(filter-out current system_current,$(LOCAL_SDK_RES_VERSION))$(if $(TARGET_BUILD_APPS),$(filter current system_current,$(LOCAL_SDK_RES_VERSION))),)
|
||||
# for released sdk versions, the platform resources were built into android.jar.
|
||||
framework_res_package_export := \
|
||||
$(HISTORICAL_SDK_VERSIONS_ROOT)/$(LOCAL_SDK_RES_VERSION)/android.jar
|
||||
|
@ -304,9 +307,19 @@ framework_res_package_export := \
|
|||
framework_res_package_export_deps := \
|
||||
$(dir $(framework_res_package_export))src/R.stamp
|
||||
endif # LOCAL_SDK_RES_VERSION
|
||||
$(R_file_stamp): $(framework_res_package_export_deps)
|
||||
all_library_res_package_exports := \
|
||||
$(framework_res_package_export) \
|
||||
$(foreach lib,$(LOCAL_RES_LIBRARIES),\
|
||||
$(call intermediates-dir-for,APPS,$(lib),,COMMON)/package-export.apk)
|
||||
|
||||
all_library_res_package_export_deps := \
|
||||
$(framework_res_package_export_deps) \
|
||||
$(foreach lib,$(LOCAL_RES_LIBRARIES),\
|
||||
$(call intermediates-dir-for,APPS,$(lib),,COMMON)/src/R.stamp)
|
||||
|
||||
$(resource_export_package) $(R_file_stamp) $(LOCAL_BUILT_MODULE): $(all_library_res_package_export_deps)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): \
|
||||
PRIVATE_AAPT_INCLUDES := $(framework_res_package_export)
|
||||
PRIVATE_AAPT_INCLUDES := $(all_library_res_package_exports)
|
||||
endif # LOCAL_NO_STANDARD_LIBRARIES
|
||||
|
||||
ifneq ($(full_classes_jar),)
|
||||
|
@ -364,8 +377,12 @@ ifeq ($(LOCAL_AAPT_INCLUDE_ALL_RESOURCES),true)
|
|||
$(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_PREF_CONFIG :=
|
||||
else
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_CONFIG := $(PRODUCT_AAPT_CONFIG)
|
||||
ifdef LOCAL_PACKAGE_SPLITS
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_PREF_CONFIG :=
|
||||
else
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_PREF_CONFIG := $(PRODUCT_AAPT_PREF_CONFIG)
|
||||
endif
|
||||
endif
|
||||
$(LOCAL_BUILT_MODULE): $(all_res_assets) $(jni_shared_libraries) $(full_android_manifest)
|
||||
@echo "target Package: $(PRIVATE_MODULE) ($@)"
|
||||
$(create-empty-package)
|
||||
|
@ -402,6 +419,44 @@ $(built_odex) : $(dir $(LOCAL_BUILT_MODULE))% : $(built_dex)
|
|||
$(hide) rm $@.input
|
||||
endif
|
||||
|
||||
###############################
|
||||
## APK splits
|
||||
ifdef LOCAL_PACKAGE_SPLITS
|
||||
# LOCAL_PACKAGE_SPLITS is a list of resource labels.
|
||||
# aapt will convert comma inside resource lable to underscore in the file names.
|
||||
my_split_suffixes := $(subst $(comma),_,$(LOCAL_PACKAGE_SPLITS))
|
||||
built_apk_splits := $(foreach s,$(my_split_suffixes),$(built_module_path)/package_$(s).apk)
|
||||
installed_apk_splits := $(foreach s,$(my_split_suffixes),$(my_module_path)/$(LOCAL_MODULE)_$(s).apk)
|
||||
|
||||
# The splits should have been built in the same command building the base apk.
|
||||
# This rule just runs signing and zipalign etc.
|
||||
# Note that we explicily check the existence of the split apk and remove the
|
||||
# built base apk if the split apk isn't there.
|
||||
# That way the build system will rerun the aapt after the user changes the splitting parameters.
|
||||
$(built_apk_splits): PRIVATE_PRIVATE_KEY := $(private_key)
|
||||
$(built_apk_splits): PRIVATE_CERTIFICATE := $(certificate)
|
||||
$(built_apk_splits) : $(built_module_path)/%.apk : $(LOCAL_BUILT_MODULE)
|
||||
$(hide) if [ ! -f $@ ]; then \
|
||||
echo 'No $@ generated, check your apk splitting parameters.' 1>&2; \
|
||||
rm $<; exit 1; \
|
||||
fi
|
||||
$(sign-package)
|
||||
$(align-package)
|
||||
|
||||
# Rules to install the splits
|
||||
$(installed_apk_splits) : $(my_module_path)/$(LOCAL_MODULE)_%.apk : $(built_module_path)/package_%.apk | $(ACP)
|
||||
@echo "Install: $@"
|
||||
$(copy-file-to-new-target)
|
||||
|
||||
# Register the additional built and installed files.
|
||||
ALL_MODULES.$(my_register_name).INSTALLED += $(installed_apk_splits)
|
||||
ALL_MODULES.$(my_register_name).BUILT_INSTALLED += \
|
||||
$(foreach s,$(my_split_suffixes),$(built_module_path)/package_$(s).apk:$(my_module_path)/$(LOCAL_MODULE)_$(s).apk)
|
||||
|
||||
# Make sure to install the splits when you run "make <module_name>".
|
||||
$(my_register_name): $(installed_apk_splits)
|
||||
endif # LOCAL_PACKAGE_SPLITS
|
||||
|
||||
# Save information about this package
|
||||
PACKAGES.$(LOCAL_PACKAGE_NAME).OVERRIDES := $(strip $(LOCAL_OVERRIDES_PACKAGES))
|
||||
PACKAGES.$(LOCAL_PACKAGE_NAME).RESOURCE_FILES := $(all_resources)
|
||||
|
|
|
@ -29,10 +29,8 @@
|
|||
pathmap_INCL := \
|
||||
bootloader:bootable/bootloader/legacy/include \
|
||||
camera:system/media/camera/include \
|
||||
corecg:external/skia/include/core \
|
||||
frameworks-base:frameworks/base/include \
|
||||
frameworks-native:frameworks/native/include \
|
||||
graphics:external/skia/include/core \
|
||||
libc:bionic/libc/include \
|
||||
libhardware:hardware/libhardware/include \
|
||||
libhardware_legacy:hardware/libhardware_legacy/include \
|
||||
|
@ -51,6 +49,7 @@ pathmap_INCL := \
|
|||
audio-route:system/media/audio_route/include \
|
||||
wilhelm:frameworks/wilhelm/include \
|
||||
wilhelm-ut:frameworks/wilhelm/src/ut \
|
||||
mediandk:frameworks/av/media/ndk/ \
|
||||
speex:external/speex/include
|
||||
|
||||
#
|
||||
|
@ -86,7 +85,9 @@ FRAMEWORKS_BASE_SUBDIRS := \
|
|||
drm \
|
||||
opengl \
|
||||
sax \
|
||||
telecomm \
|
||||
telephony \
|
||||
phone \
|
||||
wifi \
|
||||
keystore \
|
||||
rs \
|
||||
|
@ -105,12 +106,17 @@ FRAMEWORKS_BASE_JAVA_SRC_DIRS := \
|
|||
# A list of all source roots under frameworks/support.
|
||||
#
|
||||
FRAMEWORKS_SUPPORT_SUBDIRS := \
|
||||
annotations \
|
||||
v4 \
|
||||
v7/gridlayout \
|
||||
v7/appcompat \
|
||||
v7/cardview \
|
||||
v7/mediarouter \
|
||||
v7/palette \
|
||||
v7/recyclerview \
|
||||
v8/renderscript \
|
||||
v13
|
||||
v13 \
|
||||
v17/leanback
|
||||
|
||||
#
|
||||
# A list of all source roots under frameworks/multidex.
|
||||
|
|
|
@ -18,9 +18,14 @@ pdk fusion: $(DEFAULT_GOAL)
|
|||
|
||||
# if PDK_FUSION_PLATFORM_ZIP is specified, do not override.
|
||||
ifndef PDK_FUSION_PLATFORM_ZIP
|
||||
# Most PDK project paths should be using vendor/pdk/TARGET_DEVICE
|
||||
# but some legacy ones (e.g. mini_armv7a_neon generic PDK) were setup
|
||||
# with vendor/pdk/TARGET_PRODUCT.
|
||||
_pdk_fusion_default_platform_zip = $(wildcard \
|
||||
vendor/pdk/$(TARGET_DEVICE)/$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)/platform/platform.zip \
|
||||
vendor/pdk/$(TARGET_DEVICE)/$(patsubst aosp_%,full_%,$(TARGET_PRODUCT))-$(TARGET_BUILD_VARIANT)/platform/platform.zip)
|
||||
vendor/pdk/$(TARGET_DEVICE)/$(patsubst aosp_%,full_%,$(TARGET_PRODUCT))-$(TARGET_BUILD_VARIANT)/platform/platform.zip \
|
||||
vendor/pdk/$(TARGET_PRODUCT)/$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)/platform/platform.zip \
|
||||
vendor/pdk/$(TARGET_PRODUCT)/$(patsubst aosp_%,full_%,$(TARGET_PRODUCT))-$(TARGET_BUILD_VARIANT)/platform/platform.zip)
|
||||
ifneq (,$(_pdk_fusion_default_platform_zip))
|
||||
PDK_FUSION_PLATFORM_ZIP := $(word 1, $(_pdk_fusion_default_platform_zip))
|
||||
TARGET_BUILD_PDK := true
|
||||
|
@ -37,29 +42,41 @@ endif
|
|||
endif # fusion
|
||||
endif # pdk or fusion
|
||||
|
||||
PDK_PLATFORM_JAVA_ZIP_JAVA_TARGET_LIB_DIR :=
|
||||
PDK_PLATFORM_JAVA_ZIP_JAVA_HOST_LIB_DIR := \
|
||||
host/common/obj/JAVA_LIBRARIES/bouncycastle-host_intermediates
|
||||
PDK_PLATFORM_JAVA_ZIP_CONTENTS :=
|
||||
|
||||
ifneq (,$(filter platform-java, $(MAKECMDGOALS))$(PDK_FUSION_PLATFORM_ZIP))
|
||||
# additional items to add to platform.zip for platform-java build
|
||||
# For these dirs, add classes.jar and javalib.jar from the dir to platform.zip
|
||||
# all paths under out dir
|
||||
PDK_PLATFORM_JAVA_ZIP_JAVA_LIB_DIR := \
|
||||
PDK_PLATFORM_JAVA_ZIP_JAVA_TARGET_LIB_DIR += \
|
||||
target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates \
|
||||
target/common/obj/JAVA_LIBRARIES/core_intermediates \
|
||||
target/common/obj/JAVA_LIBRARIES/core-libart_intermediates \
|
||||
target/common/obj/JAVA_LIBRARIES/core-junit_intermediates \
|
||||
target/common/obj/JAVA_LIBRARIES/ext_intermediates \
|
||||
target/common/obj/JAVA_LIBRARIES/framework_intermediates \
|
||||
target/common/obj/JAVA_LIBRARIES/framework2_intermediates \
|
||||
target/common/obj/JAVA_LIBRARIES/android.test.runner_intermediates \
|
||||
target/common/obj/JAVA_LIBRARIES/telephony-common_intermediates \
|
||||
target/common/obj/JAVA_LIBRARIES/voip-common_intermediates \
|
||||
target/common/obj/JAVA_LIBRARIES/ims-common_intermediates \
|
||||
target/common/obj/JAVA_LIBRARIES/mms-common_intermediates \
|
||||
target/common/obj/JAVA_LIBRARIES/android-ex-camera2_intermediates
|
||||
target/common/obj/JAVA_LIBRARIES/android-ex-camera2_intermediates \
|
||||
target/common/obj/JAVA_LIBRARIES/android-common_intermediates \
|
||||
|
||||
# not java libraries
|
||||
PDK_PLATFORM_JAVA_ZIP_CONTENTS := \
|
||||
PDK_PLATFORM_JAVA_ZIP_CONTENTS += \
|
||||
target/common/obj/APPS/framework-res_intermediates/package-export.apk \
|
||||
target/common/obj/APPS/framework-res_intermediates/src/R.stamp
|
||||
endif # platform-java or FUSION build
|
||||
|
||||
PDK_PLATFORM_JAVA_ZIP_JAVA_LIB_DIR := \
|
||||
$(PDK_PLATFORM_JAVA_ZIP_JAVA_TARGET_LIB_DIR) \
|
||||
$(PDK_PLATFORM_JAVA_ZIP_JAVA_HOST_LIB_DIR)
|
||||
|
||||
PDK_PLATFORM_JAVA_ZIP_CONTENTS += $(foreach lib_dir,$(PDK_PLATFORM_JAVA_ZIP_JAVA_LIB_DIR),\
|
||||
$(lib_dir)/classes.jar $(lib_dir)/javalib.jar)
|
||||
endif # platform-java or FUSION build
|
||||
|
||||
# check and override java support level
|
||||
ifneq ($(TARGET_BUILD_PDK)$(PDK_FUSION_PLATFORM_ZIP),)
|
||||
|
@ -117,6 +134,11 @@ $(PRODUCT_OUT)/% : $(_pdk_fusion_intermediates)/% $(_pdk_fusion_stamp)
|
|||
$(hide) rm -rf $@
|
||||
$(hide) cp -fpPR $< $@
|
||||
|
||||
# implicit rules for host java files
|
||||
$(HOST_COMMON_OUT_ROOT)/% : $(_pdk_fusion_intermediates)/host/common/% $(_pdk_fusion_stamp)
|
||||
@mkdir -p $(dir $@)
|
||||
$(hide) cp -fpPR $< $@
|
||||
|
||||
ifeq (true,$(TARGET_BUILD_PDK_JAVA_PLATFORM))
|
||||
|
||||
PDK_FUSION_OUT_DIR := $(OUT_DIR)
|
||||
|
@ -137,11 +159,11 @@ target/common/obj/APPS/framework-res_intermediates/src/R.stamp,\
|
|||
target/common/obj/APPS/framework-res_intermediates/package-export.apk))
|
||||
|
||||
# javalib.jar should pull classes.jar as classes.jar is not explicitly pulled.
|
||||
$(foreach lib_dir,$(PDK_PLATFORM_JAVA_ZIP_JAVA_LIB_DIR),\
|
||||
$(foreach lib_dir,$(PDK_PLATFORM_JAVA_ZIP_JAVA_TARGET_LIB_DIR),\
|
||||
$(eval $(call JAVA_dependency_template,$(lib_dir)/javalib.jar,\
|
||||
$(lib_dir)/classes.jar)))
|
||||
|
||||
# implicit rules for all others
|
||||
# implicit rules for all other target files
|
||||
$(TARGET_COMMON_OUT_ROOT)/% : $(_pdk_fusion_intermediates)/target/common/% $(_pdk_fusion_stamp)
|
||||
@mkdir -p $(dir $@)
|
||||
$(hide) cp -fpPR $< $@
|
||||
|
@ -170,12 +192,16 @@ endif # BUILD_PDK
|
|||
ifneq (,$(filter platform platform-java, $(MAKECMDGOALS))$(filter true,$(TARGET_BUILD_PDK)))
|
||||
# files under $(PRODUCT_OUT)/symbols to help debugging.
|
||||
# Source not included to PDK due to dependency issue, so provide symbols instead.
|
||||
|
||||
# We may not be building all of them.
|
||||
# The platform.zip just silently ignores the nonexistent ones.
|
||||
PDK_SYMBOL_FILES_LIST := \
|
||||
system/bin/app_process
|
||||
system/bin/app_process32 \
|
||||
system/bin/app_process64
|
||||
|
||||
ifdef PDK_FUSION_PLATFORM_ZIP
|
||||
# symbols should be explicitly pulled for fusion build
|
||||
$(foreach f,$(PDK_SYMBOL_FILES_LIST),\
|
||||
$(foreach f,$(filter $(PDK_SYMBOL_FILES_LIST), $(_pdk_fusion_file_list)),\
|
||||
$(eval $(call add-dependency,$(PRODUCT_OUT)/$(f),$(PRODUCT_OUT)/symbols/$(f))))
|
||||
endif # PLATFORM_ZIP
|
||||
endif # platform.zip build or PDK
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
# Clean steps that need global knowledge of individual modules.
|
||||
# This file must be included after all Android.mks have been loaded.
|
||||
|
||||
#######################################################
|
||||
# Checks the current build configurations against the previous build,
|
||||
# clean artifacts in TARGET_COMMON_OUT_ROOT if necessary.
|
||||
# If a package's resource overlay has been changed, its R class needs to be
|
||||
|
@ -51,3 +52,45 @@ $(shell mv -f $(current_package_overlay_config) $(previous_package_overlay_confi
|
|||
previous_package_overlay_config :=
|
||||
current_package_overlay_config :=
|
||||
current_all_packages_config :=
|
||||
|
||||
#######################################################
|
||||
# Check if we need to delete obsolete aidl-generated java files.
|
||||
# When an aidl file gets deleted (or renamed), the generated java file is obsolete.
|
||||
previous_aidl_config := $(TARGET_OUT_COMMON_INTERMEDIATES)/previous_aidl_config.mk
|
||||
current_aidl_config := $(TARGET_OUT_COMMON_INTERMEDIATES)/current_aidl_config.mk
|
||||
|
||||
$(shell rm -rf $(current_aidl_config) \
|
||||
&& mkdir -p $(dir $(current_aidl_config))\
|
||||
&& touch $(current_aidl_config))
|
||||
-include $(previous_aidl_config)
|
||||
|
||||
intermediates_to_clean :=
|
||||
modules_with_aidl_files :=
|
||||
$(foreach p, $(ALL_MODULES), \
|
||||
$(if $(ALL_MODULES.$(p).AIDL_FILES),\
|
||||
$(eval modules_with_aidl_files += $(p))\
|
||||
$(shell echo 'AIDL_FILES.$(p) := $(ALL_MODULES.$(p).AIDL_FILES)' >> $(current_aidl_config)))\
|
||||
$(if $(filter-out $(ALL_MODULES.$(p).AIDL_FILES),$(AIDL_FILES.$(p))),\
|
||||
$(eval intermediates_to_clean += $(ALL_MODULES.$(p).INTERMEDIATE_SOURCE_DIR))))
|
||||
intermediates_to_clean := $(strip $(intermediates_to_clean))
|
||||
ifdef intermediates_to_clean
|
||||
$(info *** Obsolete aidl-generated files detected, clean intermediate files...)
|
||||
$(info *** rm -rf $(intermediates_to_clean))
|
||||
$(shell rm -rf $(intermediates_to_clean))
|
||||
intermediates_to_clean :=
|
||||
endif
|
||||
|
||||
# For modules not loaded by the current build (e.g. you are running mm/mmm),
|
||||
# we copy the info from the previous bulid.
|
||||
$(foreach p, $(filter-out $(ALL_MODULES),$(MODULES_WITH_AIDL_FILES)),\
|
||||
$(shell echo 'AIDL_FILES.$(p) := $(AIDL_FILES.$(p))' >> $(current_aidl_config)))
|
||||
MODULES_WITH_AIDL_FILES := $(sort $(MODULES_WITH_AIDL_FILES) $(modules_with_aidl_files))
|
||||
$(shell echo 'MODULES_WITH_AIDL_FILES := $(MODULES_WITH_AIDL_FILES)' >> $(current_aidl_config))
|
||||
|
||||
# Now current becomes previous.
|
||||
$(shell mv -f $(current_aidl_config) $(previous_aidl_config))
|
||||
|
||||
MODULES_WITH_AIDL_FILES :=
|
||||
modules_with_aidl_files :=
|
||||
previous_aidl_config :=
|
||||
current_aidl_config :=
|
||||
|
|
|
@ -54,6 +54,11 @@ ifeq (STATIC_LIBRARIES,$(LOCAL_MODULE_CLASS))
|
|||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(LOCAL_MODULE_CLASS),APPS)
|
||||
LOCAL_BUILT_MODULE_STEM := package.apk
|
||||
LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE).apk
|
||||
endif
|
||||
|
||||
ifeq ($(LOCAL_STRIP_MODULE),true)
|
||||
ifdef LOCAL_IS_HOST_MODULE
|
||||
$(error Cannot strip host module LOCAL_PATH=$(LOCAL_PATH))
|
||||
|
@ -109,6 +114,7 @@ endif
|
|||
|
||||
endif # LOCAL_STRIP_MODULE not true
|
||||
|
||||
ifeq ($(LOCAL_MODULE_CLASS),APPS)
|
||||
PACKAGES.$(LOCAL_MODULE).OVERRIDES := $(strip $(LOCAL_OVERRIDES_PACKAGES))
|
||||
|
||||
rs_compatibility_jni_libs :=
|
||||
|
@ -128,11 +134,9 @@ ifeq ($(LOCAL_CERTIFICATE),EXTERNAL)
|
|||
$(built_module) : PRIVATE_CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem
|
||||
endif
|
||||
ifeq ($(LOCAL_CERTIFICATE),)
|
||||
ifneq ($(filter APPS,$(LOCAL_MODULE_CLASS)),)
|
||||
# It is now a build error to add a prebuilt .apk without
|
||||
# specifying a key for it.
|
||||
$(error No LOCAL_CERTIFICATE specified for prebuilt "$(my_prebuilt_src_file)")
|
||||
endif
|
||||
# It is now a build error to add a prebuilt .apk without
|
||||
# specifying a key for it.
|
||||
$(error No LOCAL_CERTIFICATE specified for prebuilt "$(my_prebuilt_src_file)")
|
||||
else ifeq ($(LOCAL_CERTIFICATE),PRESIGNED)
|
||||
# The magic string "PRESIGNED" means this package is already checked
|
||||
# signed with its release key.
|
||||
|
@ -156,10 +160,10 @@ else
|
|||
$(built_module) : PRIVATE_CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem
|
||||
endif
|
||||
|
||||
ifneq ($(filter APPS,$(LOCAL_MODULE_CLASS)),)
|
||||
|
||||
# Disable dex-preopt of prebuilts to save space
|
||||
# Disable dex-preopt of prebuilts to save space, if requested.
|
||||
ifeq ($(DONT_DEXPREOPT_PREBUILTS),true)
|
||||
LOCAL_DEX_PREOPT := false
|
||||
endif
|
||||
|
||||
#######################################
|
||||
# defines built_odex along with rule to install odex
|
||||
|
@ -188,6 +192,42 @@ $(built_odex) : $(my_prebuilt_src_file)
|
|||
$(call dexpreopt-one-file,$<,$@)
|
||||
endif
|
||||
|
||||
###############################
|
||||
## Install split apks.
|
||||
ifdef LOCAL_PACKAGE_SPLITS
|
||||
# LOCAL_PACKAGE_SPLITS is a list of apks to be installed.
|
||||
built_apk_splits := $(addprefix $(built_module_path)/,$(notdir $(LOCAL_PACKAGE_SPLITS)))
|
||||
installed_apk_splits := $(addprefix $(my_module_path)/,$(notdir $(LOCAL_PACKAGE_SPLITS)))
|
||||
|
||||
# Rules to sign and zipalign the split apks.
|
||||
my_src_dir := $(sort $(dir $(LOCAL_PACKAGE_SPLITS)))
|
||||
ifneq (1,$(words $(my_src_dir)))
|
||||
$(error You must put all the split source apks in the same folder: $(LOCAL_PACKAGE_SPLITS))
|
||||
endif
|
||||
my_src_dir := $(LOCAL_PATH)/$(my_src_dir)
|
||||
|
||||
$(built_apk_splits) : PRIVATE_PRIVATE_KEY := $(LOCAL_CERTIFICATE).pk8
|
||||
$(built_apk_splits) : PRIVATE_CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem
|
||||
$(built_apk_splits) : $(built_module_path)/%.apk : $(my_src_dir)/%.apk | $(ACP)
|
||||
$(copy-file-to-new-target)
|
||||
$(sign-package)
|
||||
$(align-package)
|
||||
|
||||
# Rules to install the split apks.
|
||||
$(installed_apk_splits) : $(my_module_path)/%.apk : $(built_module_path)/%.apk | $(ACP)
|
||||
@echo "Install: $@"
|
||||
$(copy-file-to-new-target)
|
||||
|
||||
# Register the additional built and installed files.
|
||||
ALL_MODULES.$(my_register_name).INSTALLED += $(installed_apk_splits)
|
||||
ALL_MODULES.$(my_register_name).BUILT_INSTALLED += \
|
||||
$(foreach s,$(LOCAL_PACKAGE_SPLITS),$(built_module_path)/$(notdir $(s)):$(my_module_path)/$(notdir $(s)))
|
||||
|
||||
# Make sure to install the splits when you run "make <module_name>".
|
||||
$(my_register_name): $(installed_apk_splits)
|
||||
|
||||
endif # LOCAL_PACKAGE_SPLITS
|
||||
|
||||
else # LOCAL_MODULE_CLASS != APPS
|
||||
ifneq ($(LOCAL_PREBUILT_STRIP_COMMENTS),)
|
||||
$(built_module) : $(my_prebuilt_src_file)
|
||||
|
|
|
@ -86,10 +86,12 @@ _product_var_list := \
|
|||
PRODUCT_PACKAGE_OVERLAYS \
|
||||
DEVICE_PACKAGE_OVERLAYS \
|
||||
PRODUCT_TAGS \
|
||||
PRODUCT_SDK_ATREE_FILES \
|
||||
PRODUCT_SDK_ADDON_NAME \
|
||||
PRODUCT_SDK_ADDON_COPY_FILES \
|
||||
PRODUCT_SDK_ADDON_COPY_MODULES \
|
||||
PRODUCT_SDK_ADDON_DOC_MODULES \
|
||||
PRODUCT_SDK_ADDON_SYS_IMG_SOURCE_PROP \
|
||||
PRODUCT_DEFAULT_WIFI_CHANNELS \
|
||||
PRODUCT_DEFAULT_DEV_CERTIFICATE \
|
||||
PRODUCT_RESTRICT_VENDOR_FILES \
|
||||
|
@ -98,6 +100,13 @@ _product_var_list := \
|
|||
PRODUCT_FACTORY_BUNDLE_MODULES \
|
||||
PRODUCT_RUNTIMES \
|
||||
PRODUCT_BOOT_JARS \
|
||||
PRODUCT_SUPPORTS_VERITY \
|
||||
PRODUCT_OEM_PROPERTIES \
|
||||
PRODUCT_SYSTEM_PROPERTY_BLACKLIST \
|
||||
PRODUCT_SYSTEM_SERVER_JARS \
|
||||
PRODUCT_VERITY_SIGNING_KEY \
|
||||
PRODUCT_SYSTEM_VERITY_PARTITION \
|
||||
PRODUCT_VENDOR_VERITY_PARTITION \
|
||||
PRODUCT_DEX_PREOPT_IMAGE_IN_DATA \
|
||||
PRODUCT_DEX_PREOPT_MODULE_CONFIGS \
|
||||
PRODUCT_DEX_PREOPT_DEFAULT_FLAGS \
|
||||
|
@ -214,6 +223,7 @@ endef
|
|||
|
||||
_product_stash_var_list := $(_product_var_list) \
|
||||
PRODUCT_BOOTCLASSPATH \
|
||||
PRODUCT_SYSTEM_SERVER_CLASSPATH \
|
||||
TARGET_ARCH \
|
||||
TARGET_ARCH_VARIANT \
|
||||
TARGET_CPU_VARIANT \
|
||||
|
@ -247,11 +257,13 @@ _product_stash_var_list += \
|
|||
BOARD_BOOTIMAGE_PARTITION_SIZE \
|
||||
BOARD_RECOVERYIMAGE_PARTITION_SIZE \
|
||||
BOARD_SYSTEMIMAGE_PARTITION_SIZE \
|
||||
BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE \
|
||||
BOARD_USERDATAIMAGE_PARTITION_SIZE \
|
||||
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE \
|
||||
BOARD_CACHEIMAGE_PARTITION_SIZE \
|
||||
BOARD_FLASH_BLOCK_SIZE \
|
||||
BOARD_SYSTEMIMAGE_PARTITION_SIZE \
|
||||
BOARD_VENDORIMAGE_PARTITION_SIZE \
|
||||
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE \
|
||||
BOARD_INSTALLER_CMDLINE \
|
||||
|
||||
|
||||
|
|
|
@ -281,6 +281,7 @@ endif
|
|||
|
||||
# A list of module names of BOOTCLASSPATH (jar files)
|
||||
PRODUCT_BOOT_JARS := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_BOOT_JARS))
|
||||
PRODUCT_SYSTEM_SERVER_JARS := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_SERVER_JARS))
|
||||
|
||||
# Find the device that this product maps to.
|
||||
TARGET_DEVICE := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_DEVICE)
|
||||
|
@ -314,11 +315,13 @@ PRODUCT_AAPT_CONFIG := $(strip \
|
|||
$(if $(filter %dpi,$(PRODUCT_AAPT_CONFIG)),,mdpi))
|
||||
PRODUCT_AAPT_PREF_CONFIG := $(strip $(PRODUCT_AAPT_PREF_CONFIG))
|
||||
|
||||
# Everyone gets nodpi assets which are density-independent.
|
||||
PRODUCT_AAPT_CONFIG += nodpi
|
||||
# Everyone gets nodpi and anydpi assets which are density-independent.
|
||||
PRODUCT_AAPT_CONFIG += nodpi anydpi
|
||||
|
||||
# Keep a copy of the space-separated config
|
||||
PRODUCT_AAPT_CONFIG_SP := $(PRODUCT_AAPT_CONFIG)
|
||||
|
||||
# Convert spaces to commas.
|
||||
comma := ,
|
||||
PRODUCT_AAPT_CONFIG := \
|
||||
$(subst $(space),$(comma),$(strip $(PRODUCT_AAPT_CONFIG)))
|
||||
PRODUCT_AAPT_PREF_CONFIG := \
|
||||
|
|
|
@ -49,12 +49,16 @@
|
|||
# -keep class * extends android.preference.Preference
|
||||
# -keep class * extends android.app.BackupAgent
|
||||
|
||||
#-keep class * implements android.os.Parcelable {
|
||||
# public static final android.os.Parcelable$Creator *;
|
||||
#}
|
||||
# Parcelable CREATORs must be kept for Parcelable functionality
|
||||
-keep class * implements android.os.Parcelable {
|
||||
public static final ** CREATOR;
|
||||
}
|
||||
|
||||
# The support library contains references to newer platform versions.
|
||||
# Don't warn about those in case this app is linking against an older
|
||||
# platform version. We know about them, and they are safe.
|
||||
# See proguard-android.txt in the SDK package.
|
||||
-dontwarn android.support.**
|
||||
|
||||
# Less spammy.
|
||||
-dontnote
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# Keep everything for tests
|
||||
-dontshrink
|
||||
# This flag has been moved to the makefiles and is set for tests by default.
|
||||
#-dontshrink
|
||||
|
||||
# But we may want to obfuscate if the main app gets obfuscated.
|
||||
# This flag has been moved to the makefiles.
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
###############################################################################
|
||||
# Fonts shipped with the SDK need to be renamed for Java to handle them
|
||||
# properly. Hence, a special script is used to rename the fonts. We bundle all
|
||||
# the fonts that are shipped on a newer non-space-constrained device. However,
|
||||
# OpenType fonts used on these devices are not supported by Java. Their
|
||||
# replacements are added separately.
|
||||
###############################################################################
|
||||
|
||||
|
||||
# The script that renames the font.
|
||||
sdk_font_rename_script := frameworks/base/tools/layoutlib/rename_font/build_font_single.py
|
||||
|
||||
# Location of the fonttools library that the above script depends on.
|
||||
fonttools_lib := external/fonttools/Lib
|
||||
|
||||
# A temporary location to store the renamed fonts. atree picks all files in
|
||||
# this directory and bundles it with the SDK.
|
||||
SDK_FONT_TEMP := $(call intermediates-dir-for,PACKAGING,sdk-fonts,HOST,COMMON)
|
||||
|
||||
# The font configuration files - system_fonts.xml, fallback_fonts.xml etc.
|
||||
sdk_font_config := $(wildcard frameworks/base/data/fonts/*.xml)
|
||||
sdk_font_config := $(addprefix $(SDK_FONT_TEMP)/, $(notdir $(sdk_font_config)))
|
||||
|
||||
$(sdk_font_config): $(SDK_FONT_TEMP)/%.xml: \
|
||||
frameworks/base/data/fonts/%.xml
|
||||
$(hide) mkdir -p $(dir $@)
|
||||
$(hide) cp -vf $< $@
|
||||
|
||||
# List of fonts on the device that we want to ship. This is all .ttf fonts.
|
||||
sdk_fonts_device := $(filter $(TARGET_OUT)/fonts/%.ttf, $(INTERNAL_SYSTEMIMAGE_FILES))
|
||||
sdk_fonts_device := $(addprefix $(SDK_FONT_TEMP)/, $(notdir $(sdk_fonts_device)))
|
||||
|
||||
# Macro to rename the font.
|
||||
sdk_rename_font = PYTHONPATH=$$PYTHONPATH:$(fonttools_lib) $(sdk_font_rename_script) \
|
||||
$1 $2
|
||||
|
||||
# TODO: If the font file is a symlink, reuse the font renamed from the symlink
|
||||
# target.
|
||||
$(sdk_fonts_device): $(SDK_FONT_TEMP)/%.ttf: $(TARGET_OUT)/fonts/%.ttf \
|
||||
$(sdk_font_rename_script)
|
||||
$(hide) mkdir -p $(dir $@)
|
||||
$(hide) $(call sdk_rename_font,$<,$@)
|
||||
|
||||
# List of all dependencies - all fonts and configuration files.
|
||||
SDK_FONT_DEPS := $(sdk_fonts_device) $(sdk_font_config)
|
||||
|
||||
# Define a macro to create rule for addititional fonts that we want to include
|
||||
# in the SDK.
|
||||
# $1 Output font name
|
||||
# $2 Source font path
|
||||
define sdk-extra-font-rule
|
||||
fontfullname := $$(SDK_FONT_TEMP)/$1
|
||||
ifeq ($$(filter $$(fontfullname),$$(sdk_fonts_device)),)
|
||||
SDK_FONT_DEPS += $$(fontfullname)
|
||||
$$(fontfullname): $2 $$(sdk_font_rename_script)
|
||||
$$(hide) mkdir -p $$(dir $$@)
|
||||
$$(hide) $$(call sdk_rename_font,$$<,$$@)
|
||||
endif
|
||||
fontfullname :=
|
||||
endef
|
||||
|
||||
# These extra fonts are used as a replacement for OpenType fonts.
|
||||
$(eval $(call sdk-extra-font-rule,NanumGothic.ttf,external/naver-fonts/NanumGothic.ttf))
|
||||
$(eval $(call sdk-extra-font-rule,DroidSansFallback.ttf,frameworks/base/data/fonts/DroidSansFallbackFull.ttf))
|
||||
|
||||
sdk-extra-font-rule :=
|
|
@ -40,7 +40,6 @@ include $(BUILD_SYSTEM)/dynamic_binary.mk
|
|||
|
||||
# Define PRIVATE_ variables from global vars
|
||||
my_target_global_ld_dirs := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_LD_DIRS)
|
||||
my_target_fdo_lib := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_LIB)
|
||||
my_target_libgcov := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_LIBGCOV)
|
||||
my_target_libgcc := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_LIBGCC)
|
||||
my_target_libatomic := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_LIBATOMIC)
|
||||
|
@ -59,7 +58,6 @@ my_target_crtend_so_o := $(wildcard $(my_ndk_sysroot_lib)/crtend_so.o)
|
|||
endif
|
||||
$(linked_module): PRIVATE_TARGET_GLOBAL_LD_DIRS := $(my_target_global_ld_dirs)
|
||||
$(linked_module): PRIVATE_TARGET_GLOBAL_LDFLAGS := $(my_target_global_ldflags)
|
||||
$(linked_module): PRIVATE_TARGET_FDO_LIB := $(my_target_fdo_lib)
|
||||
$(linked_module): PRIVATE_TARGET_LIBGCOV := $(my_target_libgcov)
|
||||
$(linked_module): PRIVATE_TARGET_LIBGCC := $(my_target_libgcc)
|
||||
$(linked_module): PRIVATE_TARGET_LIBATOMIC := $(my_target_libatomic)
|
||||
|
|
|
@ -67,14 +67,7 @@ include $(BUILD_SYSTEM)/java_library.mk
|
|||
ifeq (true,$(need_compile_res))
|
||||
R_file_stamp := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/R.stamp
|
||||
|
||||
ifeq ($(strip $(LOCAL_MANIFEST_FILE)),)
|
||||
LOCAL_MANIFEST_FILE := AndroidManifest.xml
|
||||
endif
|
||||
ifdef LOCAL_FULL_MANIFEST_FILE
|
||||
full_android_manifest := $(LOCAL_FULL_MANIFEST_FILE)
|
||||
else
|
||||
full_android_manifest := $(LOCAL_PATH)/$(LOCAL_MANIFEST_FILE)
|
||||
endif
|
||||
include $(BUILD_SYSTEM)/android_manifest.mk
|
||||
|
||||
LOCAL_SDK_RES_VERSION:=$(strip $(LOCAL_SDK_RES_VERSION))
|
||||
ifeq ($(LOCAL_SDK_RES_VERSION),)
|
||||
|
@ -85,7 +78,7 @@ framework_res_package_export :=
|
|||
framework_res_package_export_deps :=
|
||||
# Please refer to package.mk
|
||||
ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
|
||||
ifneq ($(filter-out current,$(LOCAL_SDK_RES_VERSION))$(if $(TARGET_BUILD_APPS),$(filter current,$(LOCAL_SDK_RES_VERSION))),)
|
||||
ifneq ($(filter-out current system_current,$(LOCAL_SDK_RES_VERSION))$(if $(TARGET_BUILD_APPS),$(filter current system_current,$(LOCAL_SDK_RES_VERSION))),)
|
||||
framework_res_package_export := \
|
||||
$(HISTORICAL_SDK_VERSIONS_ROOT)/$(LOCAL_SDK_RES_VERSION)/android.jar
|
||||
framework_res_package_export_deps := $(framework_res_package_export)
|
||||
|
@ -105,7 +98,7 @@ $(R_file_stamp): PRIVATE_ANDROID_MANIFEST := $(full_android_manifest)
|
|||
$(R_file_stamp): PRIVATE_RESOURCE_PUBLICS_OUTPUT := $(intermediates.COMMON)/public_resources.xml
|
||||
$(R_file_stamp): PRIVATE_RESOURCE_DIR := $(LOCAL_RESOURCE_DIR)
|
||||
$(R_file_stamp): PRIVATE_AAPT_INCLUDES := $(framework_res_package_export)
|
||||
ifneq (,$(filter-out current, $(LOCAL_SDK_VERSION)))
|
||||
ifneq (,$(filter-out current system_current, $(LOCAL_SDK_VERSION)))
|
||||
$(R_file_stamp): PRIVATE_DEFAULT_APP_TARGET_SDK := $(LOCAL_SDK_VERSION)
|
||||
else
|
||||
$(R_file_stamp): PRIVATE_DEFAULT_APP_TARGET_SDK := $(DEFAULT_APP_TARGET_SDK)
|
||||
|
|
|
@ -42,6 +42,8 @@ $(eval $(call check-api, \
|
|||
checkapi-last, \
|
||||
$(SRC_API_DIR)/$(last_released_sdk_version).txt, \
|
||||
$(INTERNAL_PLATFORM_API_FILE), \
|
||||
frameworks/base/api/removed.txt, \
|
||||
$(INTERNAL_PLATFORM_REMOVED_API_FILE), \
|
||||
-hide 2 -hide 3 -hide 4 -hide 5 -hide 6 -hide 24 -hide 25 -hide 26 -hide 27 \
|
||||
-error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \
|
||||
-error 16 -error 17 -error 18 , \
|
||||
|
@ -56,11 +58,13 @@ $(eval $(call check-api, \
|
|||
checkapi-current, \
|
||||
frameworks/base/api/current.txt, \
|
||||
$(INTERNAL_PLATFORM_API_FILE), \
|
||||
frameworks/base/api/removed.txt, \
|
||||
$(INTERNAL_PLATFORM_REMOVED_API_FILE), \
|
||||
-error 2 -error 3 -error 4 -error 5 -error 6 \
|
||||
-error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \
|
||||
-error 16 -error 17 -error 18 -error 19 -error 20 -error 21 -error 23 -error 24 \
|
||||
-error 25 -error 26 -error 27, \
|
||||
cat $(BUILD_SYSTEM)/apicheck_msg_current.txt, \
|
||||
sed -e 's/%UPDATE_API%/update-api/g' $(BUILD_SYSTEM)/apicheck_msg_current.txt, \
|
||||
checkapi, \
|
||||
$(call doc-timestamp-for,api-stubs) \
|
||||
))
|
||||
|
@ -69,5 +73,51 @@ $(eval $(call check-api, \
|
|||
update-api: $(INTERNAL_PLATFORM_API_FILE) | $(ACP)
|
||||
@echo Copying current.txt
|
||||
$(hide) $(ACP) $(INTERNAL_PLATFORM_API_FILE) frameworks/base/api/current.txt
|
||||
@echo Copying removed.txt
|
||||
$(hide) $(ACP) $(INTERNAL_PLATFORM_REMOVED_API_FILE) frameworks/base/api/removed.txt
|
||||
|
||||
|
||||
#####################Check System API#####################
|
||||
.PHONY: checksystemapi
|
||||
|
||||
# Check that the System API we're building hasn't broken the last-released
|
||||
# SDK version.
|
||||
$(eval $(call check-api, \
|
||||
checksystemapi-last, \
|
||||
$(SRC_SYSTEM_API_DIR)/$(last_released_sdk_version).txt, \
|
||||
$(INTERNAL_PLATFORM_SYSTEM_API_FILE), \
|
||||
frameworks/base/api/system-removed.txt, \
|
||||
$(INTERNAL_PLATFORM_SYSTEM_REMOVED_API_FILE), \
|
||||
-hide 2 -hide 3 -hide 4 -hide 5 -hide 6 -hide 24 -hide 25 -hide 26 -hide 27 \
|
||||
-error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \
|
||||
-error 16 -error 17 -error 18 , \
|
||||
cat $(BUILD_SYSTEM)/apicheck_msg_last.txt, \
|
||||
checksystemapi, \
|
||||
$(call doc-timestamp-for,system-api-stubs) \
|
||||
))
|
||||
|
||||
# Check that the System API we're building hasn't changed from the not-yet-released
|
||||
# SDK version.
|
||||
$(eval $(call check-api, \
|
||||
checksystemapi-current, \
|
||||
frameworks/base/api/system-current.txt, \
|
||||
$(INTERNAL_PLATFORM_SYSTEM_API_FILE), \
|
||||
frameworks/base/api/system-removed.txt, \
|
||||
$(INTERNAL_PLATFORM_SYSTEM_REMOVED_API_FILE), \
|
||||
-error 2 -error 3 -error 4 -error 5 -error 6 \
|
||||
-error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \
|
||||
-error 16 -error 17 -error 18 -error 19 -error 20 -error 21 -error 23 -error 24 \
|
||||
-error 25 -error 26 -error 27, \
|
||||
sed -e 's/%UPDATE_API%/update-system-api/g' $(BUILD_SYSTEM)/apicheck_msg_current.txt, \
|
||||
checksystemapi, \
|
||||
$(call doc-timestamp-for,system-api-stubs) \
|
||||
))
|
||||
|
||||
.PHONY: update-system-api
|
||||
update-system-api: $(INTERNAL_PLATFORM_SYSTEM_API_FILE) | $(ACP)
|
||||
@echo Copying system-current.txt
|
||||
$(hide) $(ACP) $(INTERNAL_PLATFORM_SYSTEM_API_FILE) frameworks/base/api/system-current.txt
|
||||
@echo Copying system-removed.txt
|
||||
$(hide) $(ACP) $(INTERNAL_PLATFORM_SYSTEM_REMOVED_API_FILE) frameworks/base/api/system-removed.txt
|
||||
|
||||
endif
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
# Copyright (C) 2014 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
#
|
||||
# Rules to check if classes in the boot jars are from the whitelisted packages.
|
||||
#
|
||||
|
||||
ifneq ($(SKIP_BOOT_JARS_CHECK),true)
|
||||
ifneq ($(TARGET_BUILD_PDK),true)
|
||||
ifdef PRODUCT_BOOT_JARS
|
||||
|
||||
intermediates := $(call intermediates-dir-for, PACKAGING, boot-jars-package-check,,COMMON)
|
||||
stamp := $(intermediates)/stamp
|
||||
built_boot_jars := $(foreach j, $(PRODUCT_BOOT_JARS), \
|
||||
$(call intermediates-dir-for, JAVA_LIBRARIES, $(j),,COMMON)/classes.jar)
|
||||
script := build/core/tasks/check_boot_jars/check_boot_jars.py
|
||||
whitelist_file := build/core/tasks/check_boot_jars/package_whitelist.txt
|
||||
|
||||
$(stamp): PRIVATE_BOOT_JARS := $(built_boot_jars)
|
||||
$(stamp): PRIVATE_SCRIPT := $(script)
|
||||
$(stamp): PRIVATE_WHITELIST := $(whitelist_file)
|
||||
$(stamp) : $(built_boot_jars) $(script) $(whitelist_file)
|
||||
@echo "Check package name for $(PRIVATE_BOOT_JARS)"
|
||||
$(hide) $(PRIVATE_SCRIPT) $(PRIVATE_WHITELIST) $(PRIVATE_BOOT_JARS)
|
||||
$(hide) mkdir -p $(dir $@) && touch $@
|
||||
|
||||
.PHONY: check-boot-jars
|
||||
check-boot-jars : $(stamp)
|
||||
|
||||
# Run check-boot-jars by default
|
||||
droidcore : check-boot-jars
|
||||
|
||||
endif # PRODUCT_BOOT_JARS
|
||||
endif # TARGET_BUILD_PDK not true
|
||||
endif # SKIP_BOOT_JARS_CHECK not true
|
|
@ -0,0 +1,83 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
"""
|
||||
Check boot jars.
|
||||
|
||||
Usage: check_boot_jars.py <package_whitelist_file> <jar1> <jar2> ...
|
||||
"""
|
||||
import logging
|
||||
import os.path
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
# The compiled whitelist RE.
|
||||
whitelist_re = None
|
||||
|
||||
|
||||
def LoadWhitelist(filename):
|
||||
""" Load and compile whitelist regular expressions from filename.
|
||||
"""
|
||||
lines = []
|
||||
with open(filename, 'r') as f:
|
||||
for line in f:
|
||||
line = line.strip()
|
||||
if not line or line.startswith('#'):
|
||||
continue
|
||||
lines.append(line)
|
||||
combined_re = r'^(%s)$' % '|'.join(lines)
|
||||
global whitelist_re
|
||||
try:
|
||||
whitelist_re = re.compile(combined_re)
|
||||
except re.error:
|
||||
logging.exception(
|
||||
'Cannot compile package whitelist regular expression: %r',
|
||||
combined_re)
|
||||
whitelist_re = None
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def CheckJar(jar):
|
||||
"""Check a jar file.
|
||||
"""
|
||||
# Get the list of files inside the jar file.
|
||||
p = subprocess.Popen(args='jar tf %s' % jar,
|
||||
stdout=subprocess.PIPE, shell=True)
|
||||
stdout, _ = p.communicate()
|
||||
if p.returncode != 0:
|
||||
return False
|
||||
items = stdout.split()
|
||||
for f in items:
|
||||
if f.endswith('.class'):
|
||||
package_name = os.path.dirname(f)
|
||||
package_name = package_name.replace('/', '.')
|
||||
# Skip class without a package name
|
||||
if package_name and not whitelist_re.match(package_name):
|
||||
print >> sys.stderr, ('Error: %s: unknown package name of class file %s'
|
||||
% (jar, f))
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def main(argv):
|
||||
if len(argv) < 2:
|
||||
print __doc__
|
||||
sys.exit(1)
|
||||
|
||||
if not LoadWhitelist(argv[0]):
|
||||
sys.exit(1)
|
||||
|
||||
passed = True
|
||||
for jar in argv[1:]:
|
||||
if not CheckJar(jar):
|
||||
passed = False
|
||||
if not passed:
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(sys.argv[1:])
|
|
@ -0,0 +1,214 @@
|
|||
# Boot jar package name whitelist.
|
||||
# Each line is interpreted as a regular expression.
|
||||
|
||||
###################################################
|
||||
# core-libart.jar
|
||||
java\.awt\.font
|
||||
java\.beans
|
||||
java\.io
|
||||
java\.lang
|
||||
java\.lang\.annotation
|
||||
java\.lang\.ref
|
||||
java\.lang\.reflect
|
||||
java\.math
|
||||
java\.net
|
||||
java\.nio
|
||||
java\.nio\.channels
|
||||
java\.nio\.channels\.spi
|
||||
java\.nio\.charset
|
||||
java\.nio\.charset\.spi
|
||||
java\.security
|
||||
java\.security\.acl
|
||||
java\.security\.cert
|
||||
java\.security\.interfaces
|
||||
java\.security\.spec
|
||||
java\.sql
|
||||
java\.text
|
||||
java\.util
|
||||
java\.util\.concurrent
|
||||
java\.util\.concurrent\.atomic
|
||||
java\.util\.concurrent\.locks
|
||||
java\.util\.jar
|
||||
java\.util\.logging
|
||||
java\.util\.prefs
|
||||
java\.util\.regex
|
||||
java\.util\.zip
|
||||
javax\.crypto
|
||||
javax\.crypto\.interfaces
|
||||
javax\.crypto\.spec
|
||||
javax\.net
|
||||
javax\.net\.ssl
|
||||
javax\.security\.auth
|
||||
javax\.security\.auth\.callback
|
||||
javax\.security\.auth\.login
|
||||
javax\.security\.auth\.x500
|
||||
javax\.security\.cert
|
||||
javax\.sql
|
||||
javax\.xml
|
||||
javax\.xml\.datatype
|
||||
javax\.xml\.namespace
|
||||
javax\.xml\.parsers
|
||||
javax\.xml\.transform
|
||||
javax\.xml\.transform\.dom
|
||||
javax\.xml\.transform\.sax
|
||||
javax\.xml\.transform\.stream
|
||||
javax\.xml\.validation
|
||||
javax\.xml\.xpath
|
||||
sun\.misc
|
||||
org\.w3c\.dom
|
||||
org\.w3c\.dom\.ls
|
||||
org\.w3c\.dom\.traversal
|
||||
|
||||
# TODO: Move these internal org.apache.harmony classes to libcore.*
|
||||
org\.apache\.harmony\.crypto\.internal
|
||||
org\.apache\.harmony\.dalvik
|
||||
org\.apache\.harmony\.dalvik\.ddmc
|
||||
org\.apache\.harmony\.luni\.internal\.util
|
||||
org\.apache\.harmony\.security
|
||||
org\.apache\.harmony\.security\.asn1
|
||||
org\.apache\.harmony\.security\.fortress
|
||||
org\.apache\.harmony\.security\.pkcs10
|
||||
org\.apache\.harmony\.security\.pkcs7
|
||||
org\.apache\.harmony\.security\.pkcs8
|
||||
org\.apache\.harmony\.security\.provider\.crypto
|
||||
org\.apache\.harmony\.security\.utils
|
||||
org\.apache\.harmony\.security\.x501
|
||||
org\.apache\.harmony\.security\.x509
|
||||
org\.apache\.harmony\.security\.x509\.tsp
|
||||
org\.apache\.harmony\.xml
|
||||
org\.apache\.harmony\.xml\.dom
|
||||
org\.apache\.harmony\.xml\.parsers
|
||||
|
||||
org\.json
|
||||
org\.xmlpull\.v1
|
||||
org\.xmlpull\.v1\.sax2
|
||||
|
||||
# TODO: jarjar org.kxml2.io to com.android org\.kxml2\.io
|
||||
org\.kxml2\.io
|
||||
org\.xml
|
||||
org\.xml\.sax
|
||||
org\.xml\.sax\.ext
|
||||
org\.xml\.sax\.helpers
|
||||
|
||||
dalvik\..*
|
||||
libcore\..*
|
||||
android\..*
|
||||
com\.android\..*
|
||||
|
||||
|
||||
###################################################
|
||||
# core-junit.jar
|
||||
junit\.extensions
|
||||
junit\.framework
|
||||
|
||||
|
||||
###################################################
|
||||
# ext.jar
|
||||
# TODO: jarjar javax.sip to com.android
|
||||
javax\.sip
|
||||
javax\.sip\.address
|
||||
javax\.sip\.header
|
||||
javax\.sip\.message
|
||||
|
||||
# TODO: jarjar org.apache.commons to com.android
|
||||
org\.apache\.commons\.codec
|
||||
org\.apache\.commons\.codec\.binary
|
||||
org\.apache\.commons\.codec\.language
|
||||
org\.apache\.commons\.codec\.net
|
||||
org\.apache\.commons\.logging
|
||||
org\.apache\.commons\.logging\.impl
|
||||
org\.apache\.http
|
||||
org\.apache\.http\.auth
|
||||
org\.apache\.http\.auth\.params
|
||||
org\.apache\.http\.client
|
||||
org\.apache\.http\.client\.entity
|
||||
org\.apache\.http\.client\.methods
|
||||
org\.apache\.http\.client\.params
|
||||
org\.apache\.http\.client\.protocol
|
||||
org\.apache\.http\.client\.utils
|
||||
org\.apache\.http\.conn
|
||||
org\.apache\.http\.conn\.params
|
||||
org\.apache\.http\.conn\.routing
|
||||
org\.apache\.http\.conn\.scheme
|
||||
org\.apache\.http\.conn\.ssl
|
||||
org\.apache\.http\.conn\.util
|
||||
org\.apache\.http\.cookie
|
||||
org\.apache\.http\.cookie\.params
|
||||
org\.apache\.http\.entity
|
||||
org\.apache\.http\.impl
|
||||
org\.apache\.http\.impl\.auth
|
||||
org\.apache\.http\.impl\.client
|
||||
org\.apache\.http\.impl\.client
|
||||
org\.apache\.http\.impl\.conn
|
||||
org\.apache\.http\.impl\.conn\.tsccm
|
||||
org\.apache\.http\.impl\.cookie
|
||||
org\.apache\.http\.impl\.entity
|
||||
org\.apache\.http\.impl\.io
|
||||
org\.apache\.http\.impl\.io
|
||||
org\.apache\.http\.io
|
||||
org\.apache\.http\.message
|
||||
org\.apache\.http\.params
|
||||
org\.apache\.http\.protocol
|
||||
org\.apache\.http\.util
|
||||
|
||||
# TODO: jarjar gov.nist to com.android
|
||||
gov\.nist\.core
|
||||
gov\.nist\.core\.net
|
||||
gov\.nist\.javax\.sip
|
||||
gov\.nist\.javax\.sip\.address
|
||||
gov\.nist\.javax\.sip\.clientauthutils
|
||||
gov\.nist\.javax\.sip\.header
|
||||
gov\.nist\.javax\.sip\.header\.extensions
|
||||
gov\.nist\.javax\.sip\.header\.ims
|
||||
gov\.nist\.javax\.sip\.message
|
||||
gov\.nist\.javax\.sip\.parser
|
||||
gov\.nist\.javax\.sip\.parser\.extensions
|
||||
gov\.nist\.javax\.sip\.parser\.ims
|
||||
gov\.nist\.javax\.sip\.stack
|
||||
|
||||
org\.ccil\.cowan\.tagsoup
|
||||
org\.ccil\.cowan\.tagsoup\.jaxp
|
||||
|
||||
###################################################
|
||||
# framework.jar
|
||||
javax\.microedition\.khronos\.opengles
|
||||
javax\.microedition\.khronos\.egl
|
||||
|
||||
android
|
||||
|
||||
|
||||
###################################################
|
||||
# telephony-common.jar
|
||||
com\.google\..*
|
||||
|
||||
|
||||
###################################################
|
||||
# apache-xml.jar
|
||||
org\.apache\.xml\.res
|
||||
org\.apache\.xml\.utils
|
||||
org\.apache\.xml\.utils\.res
|
||||
org\.apache\.xml\.dtm
|
||||
org\.apache\.xml\.dtm\.ref
|
||||
org\.apache\.xml\.dtm\.ref\.dom2dtm
|
||||
org\.apache\.xml\.dtm\.ref\.sax2dtm
|
||||
org\.apache\.xml\.serializer
|
||||
org\.apache\.xml\.serializer\.utils
|
||||
org\.apache\.xml\.serializer\.dom3
|
||||
org\.apache\.xpath
|
||||
org\.apache\.xpath\.operations
|
||||
org\.apache\.xpath\.domapi
|
||||
org\.apache\.xpath\.functions
|
||||
org\.apache\.xpath\.res
|
||||
org\.apache\.xpath\.axes
|
||||
org\.apache\.xpath\.objects
|
||||
org\.apache\.xpath\.patterns
|
||||
org\.apache\.xpath\.jaxp
|
||||
org\.apache\.xpath\.compiler
|
||||
org\.apache\.xalan
|
||||
org\.apache\.xalan\.res
|
||||
org\.apache\.xalan\.templates
|
||||
org\.apache\.xalan\.serialize
|
||||
org\.apache\.xalan\.extensions
|
||||
org\.apache\.xalan\.processor
|
||||
org\.apache\.xalan\.transformer
|
||||
org\.apache\.xalan\.xslt
|
|
@ -17,8 +17,7 @@ cts_tools_src_dir := cts/tools
|
|||
|
||||
cts_name := android-cts
|
||||
|
||||
DDMLIB_JAR := $(HOST_OUT_JAVA_LIBRARIES)/ddmlib-prebuilt.jar
|
||||
junit_host_jar := $(HOST_OUT_JAVA_LIBRARIES)/junit.jar
|
||||
JUNIT_HOST_JAR := $(HOST_OUT_JAVA_LIBRARIES)/junit.jar
|
||||
HOSTTESTLIB_JAR := $(HOST_OUT_JAVA_LIBRARIES)/hosttestlib.jar
|
||||
TF_JAR := $(HOST_OUT_JAVA_LIBRARIES)/tradefed-prebuilt.jar
|
||||
CTS_TF_JAR := $(HOST_OUT_JAVA_LIBRARIES)/cts-tradefed.jar
|
||||
|
@ -48,6 +47,7 @@ CTS_CORE_CASE_LIST := \
|
|||
android.core.tests.libcore.package.harmony_java_text \
|
||||
android.core.tests.libcore.package.harmony_java_util \
|
||||
android.core.tests.libcore.package.harmony_javax_security \
|
||||
android.core.tests.libcore.package.okhttp \
|
||||
android.core.tests.runner
|
||||
|
||||
# The list of test packages that apache-harmony-tests (external/apache-harmony/Android.mk)
|
||||
|
@ -58,19 +58,33 @@ CTS_CORE_CASE_LIST += \
|
|||
android.core.tests.libcore.package.harmony_prefs \
|
||||
android.core.tests.libcore.package.harmony_sql
|
||||
|
||||
|
||||
CTS_TEST_JAR_LIST := \
|
||||
cts-junit \
|
||||
CtsJdwp
|
||||
|
||||
# Depend on the full package paths rather than the phony targets to avoid
|
||||
# rebuilding the packages every time.
|
||||
CTS_CORE_CASES := $(foreach pkg,$(CTS_CORE_CASE_LIST),$(call intermediates-dir-for,APPS,$(pkg))/package.apk)
|
||||
CTS_TEST_JAR_FILES := $(foreach c,$(CTS_TEST_JAR_LIST),$(call intermediates-dir-for,JAVA_LIBRARIES,$(c))/javalib.jar)
|
||||
|
||||
-include cts/CtsTestCaseList.mk
|
||||
CTS_CASE_LIST := $(CTS_CORE_CASE_LIST) $(CTS_TEST_CASE_LIST)
|
||||
|
||||
# A module may have mutliple installed files (e.g. split apks)
|
||||
CTS_CASE_LIST_APKS :=
|
||||
CTS_CASE_LIST_APKS_DIR := $(cts_dir)/$(cts_name)/repository/testcases/
|
||||
$(foreach m, $(CTS_CASE_LIST),\
|
||||
$(foreach fp, $(ALL_MODULES.$(m).BUILT_INSTALLED),\
|
||||
$(eval pair := $(subst :,$(space),$(fp)))\
|
||||
$(eval built := $(word 1,$(pair)))\
|
||||
$(eval installed := $(CTS_CASE_LIST_APKS_DIR)/$(notdir $(word 2,$(pair))))\
|
||||
$(eval $(call copy-one-file, $(built), $(installed)))\
|
||||
$(eval CTS_CASE_LIST_APKS += $(installed))))
|
||||
|
||||
DEFAULT_TEST_PLAN := $(cts_dir)/$(cts_name)/resource/plans
|
||||
CTS_TEST_CASE_LIST_FILES := $(foreach c, $(CTS_TEST_CASE_LIST), $(call intermediates-dir-for,APPS,$(c))/package.apk)
|
||||
$(cts_dir)/all_cts_files_stamp: PRIVATE_JUNIT_HOST_JAR := $(junit_host_jar)
|
||||
$(cts_dir)/all_cts_files_stamp: $(CTS_CORE_CASES) $(CTS_TEST_CASES) $(CTS_TEST_CASE_LIST_FILES) $(junit_host_jar) $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(TF_JAR) $(VMTESTSTF_JAR) $(CTS_TF_JAR) $(CTS_TF_EXEC_PATH) $(CTS_TF_README_PATH) $(ACP)
|
||||
$(cts_dir)/all_cts_files_stamp: $(CTS_CORE_CASES) $(CTS_TEST_CASES) $(CTS_CASE_LIST_APKS) $(JUNIT_HOST_JAR) $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(TF_JAR) $(VMTESTSTF_JAR) $(CTS_TF_JAR) $(CTS_TF_EXEC_PATH) $(CTS_TF_README_PATH) $(ACP) $(CTS_TEST_JAR_FILES)
|
||||
# Make necessary directory for CTS
|
||||
$(hide) rm -rf $(PRIVATE_CTS_DIR)
|
||||
$(hide) mkdir -p $(TMP_DIR)
|
||||
$(hide) mkdir -p $(PRIVATE_DIR)/docs
|
||||
$(hide) mkdir -p $(PRIVATE_DIR)/tools
|
||||
|
@ -78,9 +92,9 @@ $(cts_dir)/all_cts_files_stamp: $(CTS_CORE_CASES) $(CTS_TEST_CASES) $(CTS_TEST_C
|
|||
$(hide) mkdir -p $(PRIVATE_DIR)/repository/plans
|
||||
# Copy executable and JARs to CTS directory
|
||||
$(hide) $(ACP) -fp $(VMTESTSTF_JAR) $(PRIVATE_DIR)/repository/testcases
|
||||
$(hide) $(ACP) -fp $(DDMLIB_JAR) $(PRIVATE_JUNIT_HOST_JAR) $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(TF_JAR) $(CTS_TF_JAR) $(CTS_TF_EXEC_PATH) $(CTS_TF_README_PATH) $(PRIVATE_DIR)/tools
|
||||
$(hide) $(ACP) -fp $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(TF_JAR) $(CTS_TF_JAR) $(CTS_TF_EXEC_PATH) $(CTS_TF_README_PATH) $(PRIVATE_DIR)/tools
|
||||
# Change mode of the executables
|
||||
$(foreach apk,$(CTS_CASE_LIST),$(call copy-testcase-apk,$(apk)))
|
||||
$(foreach jar,$(CTS_TEST_JAR_LIST),$(call copy-testcase-jar,$(jar)))
|
||||
$(foreach testcase,$(CTS_TEST_CASES),$(call copy-testcase,$(testcase)))
|
||||
$(hide) touch $@
|
||||
|
||||
|
@ -90,29 +104,32 @@ $(cts_dir)/all_cts_files_stamp: $(CTS_CORE_CASES) $(CTS_TEST_CASES) $(CTS_TEST_C
|
|||
# $2 : The AndroidManifest.xml corresponding to the test package
|
||||
# $3 : The jar file name on PRIVATE_CLASSPATH containing junit tests to search for
|
||||
# $4 : The package prefix of classes to include, possible empty
|
||||
# $5 : The directory containing vogar expectations files
|
||||
# $6 : The Android.mk corresponding to the test package (required for host-side tests only)
|
||||
# $5 : The architecture of the current build
|
||||
# $6 : The directory containing vogar expectations files
|
||||
# $7 : The Android.mk corresponding to the test package (required for host-side tests only)
|
||||
define generate-core-test-description
|
||||
@echo "Generate core-test description ("$(notdir $(1))")"
|
||||
$(hide) java -Xmx256M \
|
||||
-Xbootclasspath/a:$(PRIVATE_CLASSPATH) \
|
||||
-classpath $(PRIVATE_CLASSPATH):$(HOST_OUT_JAVA_LIBRARIES)/descGen.jar:$(HOST_OUT_JAVA_LIBRARIES)/junit.jar:$(HOST_JDK_TOOLS_JAR) \
|
||||
$(PRIVATE_PARAMS) CollectAllTests $(1) $(2) $(3) "$(4)" $(5) $(6)
|
||||
-Xbootclasspath/a:$(PRIVATE_CLASSPATH):$(JUNIT_HOST_JAR) \
|
||||
-classpath $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar:$(HOST_JDK_TOOLS_JAR) \
|
||||
$(PRIVATE_PARAMS) CollectAllTests $(1) $(2) $(3) "$(4)" $(5) $(6) $(7)
|
||||
endef
|
||||
|
||||
CORE_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-libart,,COMMON)
|
||||
CONSCRYPT_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,conscrypt,,COMMON)
|
||||
BOUNCYCASTLE_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,bouncycastle,,COMMON)
|
||||
APACHEXML_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,apache-xml,,COMMON)
|
||||
OKHTTP_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,okhttp,,COMMON)
|
||||
APACHEHARMONY_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,apache-harmony-tests,,COMMON)
|
||||
OKHTTP_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,okhttp-nojarjar,,COMMON)
|
||||
OKHTTPTESTS_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,okhttp-tests-nojarjar,,COMMON)
|
||||
OKHTTP_REPACKAGED_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,okhttp,,COMMON)
|
||||
APACHEHARMONYTESTS_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,apache-harmony-tests,,COMMON)
|
||||
SQLITEJDBC_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,sqlite-jdbc,,COMMON)
|
||||
JUNIT_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-junit,,COMMON)
|
||||
CORETESTS_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-tests,,COMMON)
|
||||
JSR166TESTS_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,jsr166-tests,,COMMON)
|
||||
CONSCRYPTTESTS_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,conscrypt-tests,,COMMON)
|
||||
|
||||
GEN_CLASSPATH := $(CORE_INTERMEDIATES)/classes.jar:$(CONSCRYPT_INTERMEDIATES)/classes.jar:$(BOUNCYCASTLE_INTERMEDIATES)/classes.jar:$(APACHEXML_INTERMEDIATES)/classes.jar:$(APACHEHARMONY_INTERMEDIATES)/classes.jar:$(OKHTTP_INTERMEDIATES)/classes.jar:$(JUNIT_INTERMEDIATES)/classes.jar:$(SQLITEJDBC_INTERMEDIATES)/javalib.jar:$(CORETESTS_INTERMEDIATES)/javalib.jar:$(JSR166TESTS_INTERMEDIATES)/javalib.jar:$(CONSCRYPTTESTS_INTERMEDIATES)/javalib.jar
|
||||
GEN_CLASSPATH := $(CORE_INTERMEDIATES)/classes.jar:$(CONSCRYPT_INTERMEDIATES)/classes.jar:$(BOUNCYCASTLE_INTERMEDIATES)/classes.jar:$(APACHEXML_INTERMEDIATES)/classes.jar:$(APACHEHARMONYTESTS_INTERMEDIATES)/classes.jar:$(OKHTTP_INTERMEDIATES)/classes.jar:$(OKHTTPTESTS_INTERMEDIATES)/classes.jar:$(OKHTTP_REPACKAGED_INTERMEDIATES)/classes.jar:$(JUNIT_INTERMEDIATES)/classes.jar:$(SQLITEJDBC_INTERMEDIATES)/javalib.jar:$(CORETESTS_INTERMEDIATES)/javalib.jar:$(JSR166TESTS_INTERMEDIATES)/javalib.jar:$(CONSCRYPTTESTS_INTERMEDIATES)/javalib.jar
|
||||
|
||||
CTS_CORE_XMLS := \
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.dalvik.xml \
|
||||
|
@ -136,6 +153,7 @@ CTS_CORE_XMLS := \
|
|||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_logging.xml \
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_prefs.xml \
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_sql.xml \
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.okhttp.xml \
|
||||
|
||||
$(CTS_CORE_XMLS): PRIVATE_CLASSPATH:=$(GEN_CLASSPATH)
|
||||
# Why does this depend on javalib.jar instead of classes.jar? Because
|
||||
|
@ -143,155 +161,161 @@ $(CTS_CORE_XMLS): PRIVATE_CLASSPATH:=$(GEN_CLASSPATH)
|
|||
# build system requires that dependencies use javalib.jar. If
|
||||
# javalib.jar is up-to-date, then classes.jar is as well. Depending
|
||||
# on classes.jar will build the files incorrectly.
|
||||
CTS_CORE_XMLS_DEPS := $(CTS_CORE_CASES) $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(HOST_OUT_JAVA_LIBRARIES)/junit.jar $(CORE_INTERMEDIATES)/javalib.jar $(BOUNCYCASTLE_INTERMEDIATES)/javalib.jar $(APACHEXML_INTERMEDIATES)/javalib.jar $(APACHEHARMONY_INTERMEDIATES)/javalib.jar $(OKHTTP_INTERMEDIATES)/javalib.jar $(SQLITEJDBC_INTERMEDIATES)/javalib.jar $(JUNIT_INTERMEDIATES)/javalib.jar $(CORETESTS_INTERMEDIATES)/javalib.jar $(JSR166TESTS_INTERMEDIATES)/javalib.jar $(CONSCRYPTTESTS_INTERMEDIATES)/javalib.jar build/core/tasks/cts.mk | $(ACP)
|
||||
CTS_CORE_XMLS_DEPS := $(CTS_CORE_CASES) $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(JUNIT_HOST_JAR) $(CORE_INTERMEDIATES)/javalib.jar $(BOUNCYCASTLE_INTERMEDIATES)/javalib.jar $(APACHEXML_INTERMEDIATES)/javalib.jar $(APACHEHARMONYTESTS_INTERMEDIATES)/javalib.jar $(OKHTTP_INTERMEDIATES)/javalib.jar $(OKHTTPTESTS_INTERMEDIATES)/javalib.jar $(OKHTTP_REPACKAGED_INTERMEDIATES)/javalib.jar $(SQLITEJDBC_INTERMEDIATES)/javalib.jar $(JUNIT_INTERMEDIATES)/javalib.jar $(CORETESTS_INTERMEDIATES)/javalib.jar $(JSR166TESTS_INTERMEDIATES)/javalib.jar $(CONSCRYPTTESTS_INTERMEDIATES)/javalib.jar build/core/tasks/cts.mk | $(ACP)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.dalvik.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.dalvik,\
|
||||
cts/tests/core/libcore/dalvik/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,dalvik,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.com.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.com,\
|
||||
cts/tests/core/libcore/com/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,com,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.conscrypt.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.conscrypt,\
|
||||
cts/tests/core/libcore/conscrypt/AndroidManifest.xml,\
|
||||
$(CONSCRYPTTESTS_INTERMEDIATES)/javalib.jar,,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.sun.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.sun,\
|
||||
cts/tests/core/libcore/sun/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,sun,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.tests.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.tests,\
|
||||
cts/tests/core/libcore/tests/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,tests,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.org.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.org,\
|
||||
cts/tests/core/libcore/org/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,org,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.libcore.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.libcore,\
|
||||
cts/tests/core/libcore/libcore/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,libcore,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.jsr166.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.jsr166,\
|
||||
cts/tests/core/libcore/jsr166/AndroidManifest.xml,\
|
||||
$(JSR166TESTS_INTERMEDIATES)/javalib.jar,jsr166,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_annotation.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_annotation,\
|
||||
cts/tests/core/libcore/harmony_annotation/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.annotation.tests,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_io.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_io,\
|
||||
cts/tests/core/libcore/harmony_java_io/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.java.io,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_lang.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_lang,\
|
||||
cts/tests/core/libcore/harmony_java_lang/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.java.lang,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_math.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_math,\
|
||||
cts/tests/core/libcore/harmony_java_math/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.java.math,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_net.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_net,\
|
||||
cts/tests/core/libcore/harmony_java_net/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.java.net,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_nio.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_nio,\
|
||||
cts/tests/core/libcore/harmony_java_nio/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.java.nio,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_text.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_text,\
|
||||
cts/tests/core/libcore/harmony_java_text/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.java.text,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_util.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_java_util,\
|
||||
cts/tests/core/libcore/harmony_java_util/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.java.util,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_javax_security.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_javax_security,\
|
||||
cts/tests/core/libcore/harmony_javax_security/AndroidManifest.xml,\
|
||||
$(CORETESTS_INTERMEDIATES)/javalib.jar,org.apache.harmony.tests.javax.security,\
|
||||
libcore/expectations)
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_beans.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_beans,\
|
||||
cts/tests/core/libcore/harmony_beans/AndroidManifest.xml,\
|
||||
$(APACHEHARMONY_INTERMEDIATES)/javalib.jar,com.android.org.apache.harmony.beans,\
|
||||
libcore/expectations external/apache-harmony/Android.mk)
|
||||
$(APACHEHARMONYTESTS_INTERMEDIATES)/javalib.jar,com.android.org.apache.harmony.beans,\
|
||||
$(TARGET_ARCH),libcore/expectations external/apache-harmony/Android.mk)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_logging.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_logging,\
|
||||
cts/tests/core/libcore/harmony_logging/AndroidManifest.xml,\
|
||||
$(APACHEHARMONY_INTERMEDIATES)/javalib.jar,com.android.org.apache.harmony.logging,\
|
||||
libcore/expectations external/apache-harmony/Android.mk)
|
||||
|
||||
$(APACHEHARMONYTESTS_INTERMEDIATES)/javalib.jar,com.android.org.apache.harmony.logging,\
|
||||
$(TARGET_ARCH),libcore/expectations external/apache-harmony/Android.mk)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_prefs.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_prefs,\
|
||||
cts/tests/core/libcore/harmony_prefs/AndroidManifest.xml,\
|
||||
$(APACHEHARMONY_INTERMEDIATES)/javalib.jar,com.android.org.apache.harmony.prefs,\
|
||||
libcore/expectations external/apache-harmony/Android.mk)
|
||||
$(APACHEHARMONYTESTS_INTERMEDIATES)/javalib.jar,com.android.org.apache.harmony.prefs,\
|
||||
$(TARGET_ARCH),libcore/expectations external/apache-harmony/Android.mk)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_sql.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.harmony_sql,\
|
||||
cts/tests/core/libcore/harmony_sql/AndroidManifest.xml,\
|
||||
$(APACHEHARMONY_INTERMEDIATES)/javalib.jar,com.android.org.apache.harmony.sql,\
|
||||
libcore/expectations external/apache-harmony/Android.mk)
|
||||
$(APACHEHARMONYTESTS_INTERMEDIATES)/javalib.jar,com.android.org.apache.harmony.sql,\
|
||||
$(TARGET_ARCH),libcore/expectations external/apache-harmony/Android.mk)
|
||||
|
||||
$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.okhttp.xml: $(CTS_CORE_XMLS_DEPS)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.tests.libcore.package.okhttp,\
|
||||
cts/tests/core/libcore/okhttp/AndroidManifest.xml,\
|
||||
$(OKHTTPTESTS_INTERMEDIATES)/javalib.jar,,\
|
||||
$(TARGET_ARCH),libcore/expectations)
|
||||
|
||||
# ----- Generate the test descriptions for the vm-tests-tf -----
|
||||
#
|
||||
|
@ -301,15 +325,16 @@ CORE_VM_TEST_TF_DESC := $(CTS_TESTCASES_OUT)/android.core.vm-tests-tf.xml
|
|||
CORE_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-libart,,COMMON)
|
||||
JUNIT_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-junit,,COMMON)
|
||||
|
||||
GEN_CLASSPATH := $(CORE_INTERMEDIATES)/classes.jar:$(JUNIT_INTERMEDIATES)/classes.jar:$(VMTESTSTF_JAR):$(DDMLIB_JAR):$(TF_JAR)
|
||||
GEN_CLASSPATH := $(CORE_INTERMEDIATES)/classes.jar:$(JUNIT_INTERMEDIATES)/classes.jar:$(VMTESTSTF_JAR):$(TF_JAR)
|
||||
|
||||
$(CORE_VM_TEST_TF_DESC): PRIVATE_CLASSPATH:=$(GEN_CLASSPATH)
|
||||
# Please see big comment above on why this line depends on javalib.jar instead of classes.jar
|
||||
$(CORE_VM_TEST_TF_DESC): $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(HOST_OUT_JAVA_LIBRARIES)/junit.jar $(CORE_INTERMEDIATES)/javalib.jar $(JUNIT_INTERMEDIATES)/javalib.jar $(VMTESTSTF_JAR) $(DDMLIB_JAR) | $(ACP)
|
||||
$(CORE_VM_TEST_TF_DESC): $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(JUNIT_HOST_JAR) $(CORE_INTERMEDIATES)/javalib.jar $(JUNIT_INTERMEDIATES)/javalib.jar $(VMTESTSTF_JAR) | $(ACP)
|
||||
$(hide) mkdir -p $(CTS_TESTCASES_OUT)
|
||||
$(call generate-core-test-description,$(CTS_TESTCASES_OUT)/android.core.vm-tests-tf,\
|
||||
cts/tests/vm-tests-tf/AndroidManifest.xml,\
|
||||
$(VMTESTSTF_JAR),"",\
|
||||
$(TARGET_ARCH),\
|
||||
libcore/expectations,\
|
||||
cts/tools/vm-tests-tf/Android.mk)
|
||||
|
||||
|
@ -339,15 +364,16 @@ $(INTERNAL_CTS_TARGET): $(cts_dir)/all_cts_files_stamp $(DEFAULT_TEST_PLAN)
|
|||
cts: $(INTERNAL_CTS_TARGET) adb
|
||||
$(call dist-for-goals,cts,$(INTERNAL_CTS_TARGET))
|
||||
|
||||
define copy-testcase-apk
|
||||
|
||||
$(hide) $(ACP) -fp $(call intermediates-dir-for,APPS,$(1))/package.apk \
|
||||
$(PRIVATE_DIR)/repository/testcases/$(1).apk
|
||||
|
||||
endef
|
||||
|
||||
define copy-testcase
|
||||
|
||||
$(hide) $(ACP) -fp $(1) $(PRIVATE_DIR)/repository/testcases/$(notdir $1)
|
||||
|
||||
endef
|
||||
|
||||
define copy-testcase-jar
|
||||
|
||||
$(hide) $(ACP) -fp $(call intermediates-dir-for,JAVA_LIBRARIES,$(1))/javalib.jar \
|
||||
$(PRIVATE_DIR)/repository/testcases/$(1).jar
|
||||
|
||||
endef
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
#
|
||||
# Copyright (C) 2014 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# We build oem.img only if it's asked for.
|
||||
ifneq ($(filter $(MAKECMDGOALS),oem_image),)
|
||||
ifndef BOARD_OEMIMAGE_PARTITION_SIZE
|
||||
$(error BOARD_OEMIMAGE_PARTITION_SIZE is not set.)
|
||||
endif
|
||||
|
||||
INTERNAL_OEMIMAGE_FILES := \
|
||||
$(filter $(TARGET_OUT_OEM)/%,$(ALL_DEFAULT_INSTALLED_MODULES))
|
||||
|
||||
oemimage_intermediates := \
|
||||
$(call intermediates-dir-for,PACKAGING,oem)
|
||||
BUILT_OEMIMAGE_TARGET := $(PRODUCT_OUT)/oem.img
|
||||
# We just build this directly to the install location.
|
||||
INSTALLED_OEMIMAGE_TARGET := $(BUILT_OEMIMAGE_TARGET)
|
||||
|
||||
$(INSTALLED_OEMIMAGE_TARGET) : $(INTERNAL_USERIMAGES_DEPS) $(INTERNAL_OEMIMAGE_FILES)
|
||||
$(call pretty,"Target oem fs image: $@")
|
||||
@mkdir -p $(TARGET_OUT_OEM)
|
||||
@mkdir -p $(oemimage_intermediates) && rm -rf $(oemimage_intermediates)/oem_image_info.txt
|
||||
$(call generate-userimage-prop-dictionary, $(oemimage_intermediates)/oem_image_info.txt, skip_fsck=true)
|
||||
$(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \
|
||||
./build/tools/releasetools/build_image.py \
|
||||
$(TARGET_OUT_OEM) $(oemimage_intermediates)/oem_image_info.txt $@
|
||||
$(hide) $(call assert-max-image-size,$@,$(BOARD_OEMIMAGE_PARTITION_SIZE))
|
||||
|
||||
.PHONY: oem_image
|
||||
oem_image : $(INSTALLED_OEMIMAGE_TARGET)
|
||||
$(call dist-for-goals, oem_image, $(INSTALLED_OEMIMAGE_TARGET))
|
||||
|
||||
endif # oem_image in $(MAKECMDGOALS)
|
|
@ -18,11 +18,12 @@
|
|||
addon_name := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SDK_ADDON_NAME))
|
||||
ifneq ($(addon_name),)
|
||||
|
||||
addon_dir_leaf := $(addon_name)-$(FILE_NAME_TAG)-$(INTERNAL_SDK_HOST_OS_NAME)
|
||||
|
||||
intermediates := $(HOST_OUT_INTERMEDIATES)/SDK_ADDON/$(addon_name)_intermediates
|
||||
full_target := $(HOST_OUT_SDK_ADDON)/$(addon_dir_leaf).zip
|
||||
staging := $(intermediates)/$(addon_dir_leaf)
|
||||
addon_dir_leaf := $(addon_name)-$(FILE_NAME_TAG)-$(INTERNAL_SDK_HOST_OS_NAME)
|
||||
addon_dir_img := $(addon_dir_leaf)-img
|
||||
intermediates := $(HOST_OUT_INTERMEDIATES)/SDK_ADDON/$(addon_name)_intermediates
|
||||
full_target := $(HOST_OUT_SDK_ADDON)/$(addon_dir_leaf).zip
|
||||
full_target_img := $(HOST_OUT_SDK_ADDON)/$(addon_dir_img).zip
|
||||
staging := $(intermediates)
|
||||
|
||||
sdk_addon_deps :=
|
||||
files_to_copy :=
|
||||
|
@ -46,29 +47,54 @@ $(foreach cf,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SDK_ADDON_COPY_MODULES), \
|
|||
$(eval _src := $(call stub-addon-jar-file,$(_src))) \
|
||||
$(if $(_src),,$(eval $(error Unknown or unlinkable module: $(call word-colon,1,$(cf)). Requested by $(INTERNAL_PRODUCT)))) \
|
||||
$(eval _dest := $(call word-colon,2,$(cf))) \
|
||||
$(eval files_to_copy += $(_src):$(_dest)) \
|
||||
$(eval files_to_copy += $(addon_dir_leaf):$(_src):$(_dest)) \
|
||||
)
|
||||
endif
|
||||
|
||||
# Files that are copied directly into the sdk-addon
|
||||
files_to_copy += $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SDK_ADDON_COPY_FILES)
|
||||
ifneq ($(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SDK_ADDON_COPY_FILES)),)
|
||||
$(foreach cf,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SDK_ADDON_COPY_FILES), \
|
||||
$(eval _src := $(call word-colon,1,$(cf))) \
|
||||
$(eval _dest := $(call word-colon,2,$(cf))) \
|
||||
$(if $(findstring images/,$(_dest)), $(eval _root := $(addon_dir_img)), $(eval _root := $(addon_dir_leaf))) \
|
||||
$(eval files_to_copy += $(_root):$(_src):$(_dest)) \
|
||||
)
|
||||
endif
|
||||
|
||||
# All SDK add-ons have these files
|
||||
# Files copied in the system-image directory
|
||||
files_to_copy += \
|
||||
$(BUILT_SYSTEMIMAGE):images/$(TARGET_CPU_ABI)/system.img \
|
||||
$(BUILT_USERDATAIMAGE_TARGET):images/$(TARGET_CPU_ABI)/userdata.img \
|
||||
$(BUILT_RAMDISK_TARGET):images/$(TARGET_CPU_ABI)/ramdisk.img \
|
||||
$(PRODUCT_OUT)/system/build.prop:images/$(TARGET_CPU_ABI)/build.prop \
|
||||
$(target_notice_file_txt):images/$(TARGET_CPU_ABI)/NOTICE.txt
|
||||
$(addon_dir_img):$(BUILT_SYSTEMIMAGE):images/$(TARGET_CPU_ABI)/system.img \
|
||||
$(addon_dir_img):$(BUILT_USERDATAIMAGE_TARGET):images/$(TARGET_CPU_ABI)/userdata.img \
|
||||
$(addon_dir_img):$(BUILT_RAMDISK_TARGET):images/$(TARGET_CPU_ABI)/ramdisk.img \
|
||||
$(addon_dir_img):$(PRODUCT_OUT)/system/build.prop:images/$(TARGET_CPU_ABI)/build.prop \
|
||||
$(addon_dir_img):$(target_notice_file_txt):images/$(TARGET_CPU_ABI)/NOTICE.txt \
|
||||
$(addon_dir_img):$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SDK_ADDON_SYS_IMG_SOURCE_PROP):images/source.properties
|
||||
|
||||
# Generate rules to copy the requested files
|
||||
$(foreach cf,$(files_to_copy), \
|
||||
$(eval _src := $(call word-colon,1,$(cf))) \
|
||||
$(eval _dest := $(call append-path,$(staging),$(call word-colon,2,$(cf)))) \
|
||||
$(eval _root := $(call word-colon,1,$(cf))) \
|
||||
$(eval _src := $(call word-colon,2,$(cf))) \
|
||||
$(eval _dest := $(call append-path,$(call append-path,$(staging),$(_root)),$(call word-colon,3,$(cf)))) \
|
||||
$(eval $(call copy-one-file,$(_src),$(_dest))) \
|
||||
$(eval sdk_addon_deps += $(_dest)) \
|
||||
)
|
||||
|
||||
# The system-image source.properties is a template that we directly expand in-place
|
||||
addon_img_source_prop := $(call append-path,$(staging),$(addon_dir_img))/images/$(TARGET_CPU_ABI)/source.properties
|
||||
sdk_addon_deps += $(addon_img_source_prop)
|
||||
|
||||
$(addon_img_source_prop): $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SDK_ADDON_SYS_IMG_SOURCE_PROP)
|
||||
@echo Generate $@
|
||||
$(hide) mkdir -p $(dir $@)
|
||||
$(hide) sed \
|
||||
-e 's/$${PLATFORM_VERSION}/$(PLATFORM_VERSION)/' \
|
||||
-e 's/$${PLATFORM_SDK_VERSION}/$(PLATFORM_SDK_VERSION)/' \
|
||||
-e 's/$${PLATFORM_VERSION_CODENAME}/$(subst REL,,$(PLATFORM_VERSION_CODENAME))/' \
|
||||
-e 's/$${TARGET_ARCH}/$(TARGET_ARCH)/' \
|
||||
-e 's/$${TARGET_CPU_ABI}/$(TARGET_CPU_ABI)/' \
|
||||
$< > $@ && sed -i -e '/^AndroidVersion.CodeName=\s*$$/d' $@
|
||||
|
||||
|
||||
# We don't know about all of the docs files, so depend on the timestamps for
|
||||
# them, and record the directories, and the packaging rule will just copy the
|
||||
# whole thing.
|
||||
|
@ -76,7 +102,7 @@ doc_modules := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SDK_ADDON_DOC_MODU
|
|||
sdk_addon_deps += $(foreach dm, $(doc_modules), $(call doc-timestamp-for, $(dm)))
|
||||
$(full_target): PRIVATE_DOCS_DIRS := $(addprefix $(OUT_DOCS)/, $(doc_modules))
|
||||
|
||||
$(full_target): PRIVATE_STAGING_DIR := $(staging)
|
||||
$(full_target): PRIVATE_STAGING_DIR := $(call append-path,$(staging),$(addon_dir_leaf))
|
||||
|
||||
$(full_target): $(sdk_addon_deps) | $(ACP)
|
||||
@echo Packaging SDK Addon: $@
|
||||
|
@ -85,16 +111,24 @@ $(full_target): $(sdk_addon_deps) | $(ACP)
|
|||
$(ACP) -r $$d $(PRIVATE_STAGING_DIR)/docs ;\
|
||||
done
|
||||
$(hide) mkdir -p $(dir $@)
|
||||
$(hide) ( F=$$(pwd)/$@ ; cd $(PRIVATE_STAGING_DIR)/.. && zip -rq $$F * )
|
||||
$(hide) ( F=$$(pwd)/$@ ; cd $(PRIVATE_STAGING_DIR)/.. && zip -rq $$F $(notdir $(PRIVATE_STAGING_DIR)) )
|
||||
|
||||
$(full_target_img): PRIVATE_STAGING_DIR := $(call append-path,$(staging),$(addon_dir_img))/images/$(TARGET_CPU_ABI)
|
||||
$(full_target_img): $(full_target) $(addon_img_source_prop)
|
||||
@echo Packaging SDK Addon System-Image: $@
|
||||
$(hide) mkdir -p $(dir $@)
|
||||
$(hide) ( F=$$(pwd)/$@ ; cd $(PRIVATE_STAGING_DIR)/.. && zip -rq $$F $(notdir $(PRIVATE_STAGING_DIR)) )
|
||||
|
||||
|
||||
.PHONY: sdk_addon
|
||||
sdk_addon: $(full_target)
|
||||
sdk_addon: $(full_target) $(full_target_img)
|
||||
|
||||
ifneq ($(sdk_repo_goal),)
|
||||
# If we're building the sdk_repo, keep the name of the addon zip
|
||||
# around so that development/build/tools/sdk_repo.mk can dist it
|
||||
# at the appropriate location.
|
||||
ADDON_SDK_ZIP := $(full_target)
|
||||
ADDON_SDK_ZIP := $(full_target)
|
||||
ADDON_SDK_IMG_ZIP := $(full_target_img)
|
||||
else
|
||||
# When not building an sdk_repo, just dist the addon zip file
|
||||
# as-is.
|
||||
|
|
|
@ -37,16 +37,26 @@ $(foreach m,$(my_modules),\
|
|||
$(eval my_copy_pairs += $(bui):$(my_staging_dir)/$(my_copy_dest)))\
|
||||
))
|
||||
|
||||
define copy-tests-in-batch
|
||||
$(hide) $(foreach p, $(1),\
|
||||
$(eval pair := $(subst :,$(space),$(p)))\
|
||||
mkdir -p $(dir $(word 2,$(pair)));\
|
||||
cp -rf $(word 1,$(pair)) $(word 2,$(pair));)
|
||||
endef
|
||||
|
||||
my_package_zip := $(my_staging_dir)/$(my_package_name).zip
|
||||
$(my_package_zip): PRIVATE_COPY_PAIRS := $(my_copy_pairs)
|
||||
$(my_package_zip): PRIVATE_PICKUP_FILES := $(my_pickup_files)
|
||||
$(my_package_zip) : $(my_built_modules)
|
||||
@echo "Package $@"
|
||||
@rm -rf $(dir $@) && mkdir -p $(dir $@)
|
||||
$(hide) $(foreach p, $(PRIVATE_COPY_PAIRS), \
|
||||
$(eval pair := $(subst :,$(space),$(p)))\
|
||||
mkdir -p $(dir $(word 2,$(pair))); \
|
||||
cp -rf $(word 1,$(pair)) $(word 2,$(pair));)
|
||||
$(hide) $(foreach f, $(PRIVATE_PICKUP_FILES), \
|
||||
$(call copy-tests-in-batch,$(wordlist 1,200,$(PRIVATE_COPY_PAIRS)))
|
||||
$(call copy-tests-in-batch,$(wordlist 201,400,$(PRIVATE_COPY_PAIRS)))
|
||||
$(call copy-tests-in-batch,$(wordlist 401,600,$(PRIVATE_COPY_PAIRS)))
|
||||
$(call copy-tests-in-batch,$(wordlist 601,800,$(PRIVATE_COPY_PAIRS)))
|
||||
$(call copy-tests-in-batch,$(wordlist 801,1000,$(PRIVATE_COPY_PAIRS)))
|
||||
$(call copy-tests-in-batch,$(wordlist 1001,1200,$(PRIVATE_COPY_PAIRS)))
|
||||
$(call copy-tests-in-batch,$(wordlist 1201,9999,$(PRIVATE_COPY_PAIRS)))
|
||||
$(hide) $(foreach f, $(PRIVATE_PICKUP_FILES),\
|
||||
cp -rf $(f) $(dir $@);)
|
||||
$(hide) cd $(dir $@) && zip -rq $(notdir $@) *
|
||||
|
|
|
@ -18,19 +18,27 @@
|
|||
_vendor_owner_whitelist := \
|
||||
asus \
|
||||
audience \
|
||||
atmel \
|
||||
broadcom \
|
||||
csr \
|
||||
elan \
|
||||
google \
|
||||
htc \
|
||||
imgtec \
|
||||
invensense \
|
||||
intel \
|
||||
lge \
|
||||
moto \
|
||||
mtk \
|
||||
nvidia \
|
||||
nxp \
|
||||
nxpsw \
|
||||
qcom \
|
||||
qti \
|
||||
samsung \
|
||||
samsung_arm \
|
||||
sony \
|
||||
synaptics \
|
||||
ti \
|
||||
trusted_logic \
|
||||
widevine
|
||||
|
|
|
@ -41,7 +41,7 @@ ifeq "" "$(PLATFORM_VERSION)"
|
|||
# which is the version that we reveal to the end user.
|
||||
# Update this value when the platform version changes (rather
|
||||
# than overriding it somewhere else). Can be an arbitrary string.
|
||||
PLATFORM_VERSION := 4.4.3
|
||||
PLATFORM_VERSION := 5.0
|
||||
endif
|
||||
|
||||
ifeq "" "$(PLATFORM_SDK_VERSION)"
|
||||
|
@ -53,13 +53,18 @@ ifeq "" "$(PLATFORM_SDK_VERSION)"
|
|||
# intermediate builds). During development, this number remains at the
|
||||
# SDK version the branch is based on and PLATFORM_VERSION_CODENAME holds
|
||||
# the code-name of the new development work.
|
||||
PLATFORM_SDK_VERSION := 19
|
||||
PLATFORM_SDK_VERSION := 21
|
||||
endif
|
||||
|
||||
ifeq "" "$(PLATFORM_VERSION_CODENAME)"
|
||||
# This is the current development code-name, if the build is not a final
|
||||
# release build. If this is a final release build, it is simply "REL".
|
||||
PLATFORM_VERSION_CODENAME := REL
|
||||
|
||||
# This is all of the development codenames that are active. Should be either
|
||||
# the same as PLATFORM_VERSION_CODENAME or a comma-separated list of additional
|
||||
# codenames after PLATFORM_VERSION_CODENAME.
|
||||
PLATFORM_VERSION_ALL_CODENAMES := $(PLATFORM_VERSION_CODENAME)
|
||||
endif
|
||||
|
||||
ifeq "" "$(DEFAULT_APP_TARGET_SDK)"
|
||||
|
|
59
envsetup.sh
59
envsetup.sh
|
@ -1,9 +1,8 @@
|
|||
MAKE_UTIL=(`which make`)
|
||||
function hmm() {
|
||||
cat <<EOF
|
||||
Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
|
||||
- lunch: lunch <product_name>-<build_variant>
|
||||
- tapas: tapas [<App1> <App2> ...] [arm|x86|mips|armv5] [eng|userdebug|user]
|
||||
- tapas: tapas [<App1> <App2> ...] [arm|x86|mips|armv5|arm64|x86_64|mips64] [eng|userdebug|user]
|
||||
- croot: Changes directory to the top of the tree.
|
||||
- m: Makes from the top of the tree.
|
||||
- mm: Builds all of the modules in the current directory, but not their dependencies.
|
||||
|
@ -12,8 +11,10 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y
|
|||
- mma: Builds all of the modules in the current directory, and their dependencies.
|
||||
- mmma: Builds all of the modules in the supplied directories, and their dependencies.
|
||||
- cgrep: Greps on all local C/C++ files.
|
||||
- ggrep: Greps on all local Gradle files.
|
||||
- jgrep: Greps on all local Java files.
|
||||
- resgrep: Greps on all local res/*.xml files.
|
||||
- sgrep: Greps on all local source files.
|
||||
- godir: Go to the directory containing a file.
|
||||
|
||||
Look at the source to view more functions. The complete list is:
|
||||
|
@ -21,7 +22,7 @@ EOF
|
|||
T=$(gettop)
|
||||
local A
|
||||
A=""
|
||||
for i in `cat $T/build/envsetup.sh | sed -n "/^function /s/function \([a-z_]*\).*/\1/p" | sort`; do
|
||||
for i in `cat $T/build/envsetup.sh | sed -n "/^[ \t]*function /s/function \([a-z_]*\).*/\1/p" | sort | uniq`; do
|
||||
A="$A $i"
|
||||
done
|
||||
echo $A
|
||||
|
@ -36,7 +37,7 @@ function get_abs_build_var()
|
|||
return
|
||||
fi
|
||||
(\cd $T; CALLED_FROM_SETUP=true BUILD_SYSTEM=build/core \
|
||||
$MAKE_UTIL --no-print-directory -f build/core/config.mk dumpvar-abs-$1)
|
||||
command make --no-print-directory -f build/core/config.mk dumpvar-abs-$1)
|
||||
}
|
||||
|
||||
# Get the exact value of a build variable.
|
||||
|
@ -48,7 +49,7 @@ function get_build_var()
|
|||
return
|
||||
fi
|
||||
(\cd $T; CALLED_FROM_SETUP=true BUILD_SYSTEM=build/core \
|
||||
$MAKE_UTIL --no-print-directory -f build/core/config.mk dumpvar-$1)
|
||||
command make --no-print-directory -f build/core/config.mk dumpvar-$1)
|
||||
}
|
||||
|
||||
# check to see if the supplied product is one we can build
|
||||
|
@ -564,12 +565,12 @@ function _lunch()
|
|||
complete -F _lunch lunch
|
||||
|
||||
# Configures the build to build unbundled apps.
|
||||
# Run tapas with one ore more app names (from LOCAL_PACKAGE_NAME)
|
||||
# Run tapas with one or more app names (from LOCAL_PACKAGE_NAME)
|
||||
function tapas()
|
||||
{
|
||||
local arch=$(echo -n $(echo $* | xargs -n 1 echo | \grep -E '^(arm|x86|mips|armv5)$'))
|
||||
local variant=$(echo -n $(echo $* | xargs -n 1 echo | \grep -E '^(user|userdebug|eng)$'))
|
||||
local apps=$(echo -n $(echo $* | xargs -n 1 echo | \grep -E -v '^(user|userdebug|eng|arm|x86|mips|armv5)$'))
|
||||
local arch="$(echo $* | xargs -n 1 echo | \grep -E '^(arm|x86|mips|armv5|arm64|x86_64|mips64)$' | xargs)"
|
||||
local variant="$(echo $* | xargs -n 1 echo | \grep -E '^(user|userdebug|eng)$' | xargs)"
|
||||
local apps="$(echo $* | xargs -n 1 echo | \grep -E -v '^(user|userdebug|eng|arm|x86|mips|armv5|arm64|x86_64|mips64)$' | xargs)"
|
||||
|
||||
if [ $(echo $arch | wc -w) -gt 1 ]; then
|
||||
echo "tapas: Error: Multiple build archs supplied: $arch"
|
||||
|
@ -582,9 +583,12 @@ function tapas()
|
|||
|
||||
local product=full
|
||||
case $arch in
|
||||
x86) product=full_x86;;
|
||||
mips) product=full_mips;;
|
||||
armv5) product=generic_armv5;;
|
||||
x86) product=full_x86;;
|
||||
mips) product=full_mips;;
|
||||
armv5) product=generic_armv5;;
|
||||
arm64) product=aosp_arm64;;
|
||||
x86_64) product=aosp_x86_64;;
|
||||
mips64) product=aosp_mips64;;
|
||||
esac
|
||||
if [ -z "$variant" ]; then
|
||||
variant=eng
|
||||
|
@ -1036,11 +1040,16 @@ function gdbclient()
|
|||
fi
|
||||
|
||||
OUT_SO_SYMBOLS=$OUT_SO_SYMBOLS$USE64BIT
|
||||
OUT_VENDOR_SO_SYMBOLS=$OUT_VENDOR_SO_SYMBOLS$USE64BIT
|
||||
|
||||
echo >|"$OUT_ROOT/gdbclient.cmds" "set solib-absolute-prefix $OUT_SYMBOLS"
|
||||
echo >>"$OUT_ROOT/gdbclient.cmds" "set solib-search-path $OUT_SO_SYMBOLS:$OUT_SO_SYMBOLS/hw:$OUT_SO_SYMBOLS/ssl/engines:$OUT_SO_SYMBOLS/drm:$OUT_SO_SYMBOLS/egl:$OUT_SO_SYMBOLS/soundfx:$OUT_VENDOR_SO_SYMBOLS:$OUT_VENDOR_SO_SYMBOLS/hw:$OUT_VENDOR_SO_SYMBOLS/egl"
|
||||
echo >>"$OUT_ROOT/gdbclient.cmds" "source $ANDROID_BUILD_TOP/development/scripts/gdb/dalvik.gdb"
|
||||
echo >>"$OUT_ROOT/gdbclient.cmds" "target remote $PORT"
|
||||
# Enable special debugging for ART processes.
|
||||
if [[ $EXE =~ (^|/)(app_process|dalvikvm)(|32|64)$ ]]; then
|
||||
echo >> "$OUT_ROOT/gdbclient.cmds" "art-on"
|
||||
fi
|
||||
echo >>"$OUT_ROOT/gdbclient.cmds" ""
|
||||
|
||||
local WHICH_GDB=
|
||||
|
@ -1066,14 +1075,14 @@ case `uname -s` in
|
|||
Darwin)
|
||||
function sgrep()
|
||||
{
|
||||
find -E . -name .repo -prune -o -name .git -prune -o -type f -iregex '.*\.(c|h|cpp|S|java|xml|sh|mk)' -print0 | xargs -0 grep --color -n "$@"
|
||||
find -E . -name .repo -prune -o -name .git -prune -o -type f -iregex '.*\.(c|h|cc|cpp|S|java|xml|sh|mk|aidl)' -print0 | xargs -0 grep --color -n "$@"
|
||||
}
|
||||
|
||||
;;
|
||||
*)
|
||||
function sgrep()
|
||||
{
|
||||
find . -name .repo -prune -o -name .git -prune -o -type f -iregex '.*\.\(c\|h\|cpp\|S\|java\|xml\|sh\|mk\)' -print0 | xargs -0 grep --color -n "$@"
|
||||
find . -name .repo -prune -o -name .git -prune -o -type f -iregex '.*\.\(c\|h\|cc\|cpp\|S\|java\|xml\|sh\|mk\|aidl\)' -print0 | xargs -0 grep --color -n "$@"
|
||||
}
|
||||
;;
|
||||
esac
|
||||
|
@ -1083,6 +1092,11 @@ function gettargetarch
|
|||
get_build_var TARGET_ARCH
|
||||
}
|
||||
|
||||
function ggrep()
|
||||
{
|
||||
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.gradle" -print0 | xargs -0 grep --color -n "$@"
|
||||
}
|
||||
|
||||
function jgrep()
|
||||
{
|
||||
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.java" -print0 | xargs -0 grep --color -n "$@"
|
||||
|
@ -1218,9 +1232,7 @@ function runhat()
|
|||
fi
|
||||
|
||||
# issue "am" command to cause the hprof dump
|
||||
local sdcard=$(adb ${adbOptions} shell echo -n '$EXTERNAL_STORAGE')
|
||||
local devFile=$sdcard/hprof-$targetPid
|
||||
#local devFile=/data/local/hprof-$targetPid
|
||||
local devFile=/data/local/tmp/hprof-$targetPid
|
||||
echo "Poking $targetPid and waiting for data..."
|
||||
echo "Storing data at $devFile"
|
||||
adb ${adbOptions} shell am dumpheap $targetPid $devFile
|
||||
|
@ -1446,10 +1458,15 @@ function pez {
|
|||
return $retval
|
||||
}
|
||||
|
||||
function get_make_command()
|
||||
{
|
||||
echo command make
|
||||
}
|
||||
|
||||
function make()
|
||||
{
|
||||
local start_time=$(date +"%s")
|
||||
$MAKE_UTIL "$@"
|
||||
$(get_make_command) "$@"
|
||||
local ret=$?
|
||||
local end_time=$(date +"%s")
|
||||
local tdiff=$(($end_time-$start_time))
|
||||
|
@ -1458,9 +1475,9 @@ function make()
|
|||
local secs=$(($tdiff % 60))
|
||||
echo
|
||||
if [ $ret -eq 0 ] ; then
|
||||
echo -n -e "\e[0;32m#### make completed successfully "
|
||||
echo -n -e "#### make completed successfully "
|
||||
else
|
||||
echo -n -e "\e[0;31m#### make failed to build some targets "
|
||||
echo -n -e "#### make failed to build some targets "
|
||||
fi
|
||||
if [ $hours -gt 0 ] ; then
|
||||
printf "(%02g:%02g:%02g (hh:mm:ss))" $hours $mins $secs
|
||||
|
@ -1469,7 +1486,7 @@ function make()
|
|||
elif [ $secs -gt 0 ] ; then
|
||||
printf "(%s seconds)" $secs
|
||||
fi
|
||||
echo -e " ####\e[00m"
|
||||
echo -e " ####"
|
||||
echo
|
||||
return $ret
|
||||
}
|
||||
|
|
|
@ -92,3 +92,8 @@ BOARD_SEPOLICY_UNION += \
|
|||
shell.te \
|
||||
surfaceflinger.te \
|
||||
system_server.te
|
||||
|
||||
ifeq ($(TARGET_PRODUCT),sdk)
|
||||
# include an expanded selection of fonts for the SDK.
|
||||
EXTENDED_FONT_FOOTPRINT := true
|
||||
endif
|
||||
|
|
|
@ -25,6 +25,9 @@ PRODUCT_PROPERTY_OVERRIDES := \
|
|||
PRODUCT_COPY_FILES := \
|
||||
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
|
||||
device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \
|
||||
device/generic/goldfish/camera/media_codecs.xml:system/etc/media_codecs.xml \
|
||||
hardware/libhardware_legacy/audio/audio_policy.conf:system/etc/audio_policy.conf
|
||||
|
||||
|
|
|
@ -22,11 +22,39 @@ TARGET_CPU_VARIANT := generic
|
|||
TARGET_CPU_ABI := arm64-v8a
|
||||
|
||||
TARGET_2ND_ARCH := arm
|
||||
TARGET_2ND_ARCH_VARIANT := armv7-a-neon
|
||||
TARGET_2ND_CPU_VARIANT := cortex-a15
|
||||
TARGET_2ND_CPU_ABI := armeabi-v7a
|
||||
TARGET_2ND_CPU_ABI2 := armeabi
|
||||
|
||||
ifdef TARGET_BUILD_APPS
|
||||
# DO NOT USE
|
||||
# DO NOT USE
|
||||
#
|
||||
# This architecture / CPU variant must NOT be used for any 64 bit
|
||||
# platform builds. It is the lowest common denominator required
|
||||
# to build an unbundled application for all supported 32 and 64 bit
|
||||
# platforms.
|
||||
#
|
||||
# If you're building a 64 bit platform (and not an application) the
|
||||
# ARM-v8 specification allows you to assume NEON and all the features
|
||||
# available in a cortex-A15 CPU. You should be able to set :
|
||||
#
|
||||
# TARGET_2ND_ARCH_VARIANT := armv7-a-neon
|
||||
# TARGET_2ND_CPU_VARIANT := cortex-a15
|
||||
#
|
||||
# DO NOT USE
|
||||
# DO NOT USE
|
||||
TARGET_2ND_ARCH_VARIANT := armv7-a
|
||||
# DO NOT USE
|
||||
# DO NOT USE
|
||||
TARGET_2ND_CPU_VARIANT := generic
|
||||
# DO NOT USE
|
||||
# DO NOT USE
|
||||
else
|
||||
TARGET_2ND_ARCH_VARIANT := armv7-a-neon
|
||||
TARGET_2ND_CPU_VARIANT := cortex-a15
|
||||
endif
|
||||
|
||||
|
||||
TARGET_USES_64_BIT_BINDER := true
|
||||
|
||||
# no hardware camera
|
||||
|
@ -48,7 +76,7 @@ BUILD_EMULATOR_OPENGL := true
|
|||
USE_OPENGL_RENDERER := true
|
||||
|
||||
TARGET_USERIMAGES_USE_EXT4 := true
|
||||
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 786432000
|
||||
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 845427200
|
||||
BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800
|
||||
BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016
|
||||
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
|
|
|
@ -25,6 +25,9 @@ PRODUCT_PROPERTY_OVERRIDES := \
|
|||
PRODUCT_COPY_FILES := \
|
||||
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
|
||||
device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \
|
||||
device/generic/goldfish/camera/media_codecs.xml:system/etc/media_codecs.xml
|
||||
|
||||
# The ranchu configuration files are needed to run under qemu-android
|
||||
|
|
|
@ -25,6 +25,9 @@ PRODUCT_PROPERTY_OVERRIDES := \
|
|||
PRODUCT_COPY_FILES := \
|
||||
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
|
||||
device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \
|
||||
device/generic/goldfish/camera/media_codecs.xml:system/etc/media_codecs.xml \
|
||||
hardware/libhardware_legacy/audio/audio_policy.conf:system/etc/audio_policy.conf
|
||||
|
||||
|
|
|
@ -25,6 +25,9 @@ PRODUCT_PROPERTY_OVERRIDES := \
|
|||
PRODUCT_COPY_FILES := \
|
||||
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
|
||||
device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \
|
||||
device/generic/goldfish/camera/media_codecs.xml:system/etc/media_codecs.xml \
|
||||
hardware/libhardware_legacy/audio/audio_policy.conf:system/etc/audio_policy.conf
|
||||
|
||||
|
|
|
@ -25,6 +25,9 @@ PRODUCT_PROPERTY_OVERRIDES := \
|
|||
PRODUCT_COPY_FILES := \
|
||||
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
|
||||
device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \
|
||||
device/generic/goldfish/camera/media_codecs.xml:system/etc/media_codecs.xml
|
||||
|
||||
PRODUCT_PACKAGES := \
|
||||
|
|
|
@ -41,7 +41,7 @@ BUILD_EMULATOR_OPENGL := true
|
|||
USE_OPENGL_RENDERER := true
|
||||
|
||||
TARGET_USERIMAGES_USE_EXT4 := true
|
||||
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 880803840 # 840M
|
||||
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 943718400 # 900MB
|
||||
BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800
|
||||
BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016
|
||||
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
|
|
|
@ -25,6 +25,9 @@ PRODUCT_PROPERTY_OVERRIDES := \
|
|||
PRODUCT_COPY_FILES := \
|
||||
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
|
||||
device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \
|
||||
device/generic/goldfish/camera/media_codecs.xml:system/etc/media_codecs.xml
|
||||
|
||||
PRODUCT_PACKAGES := \
|
||||
|
|
|
@ -42,7 +42,8 @@ PRODUCT_MAKEFILES := \
|
|||
$(LOCAL_DIR)/aosp_mips.mk \
|
||||
$(LOCAL_DIR)/full_mips.mk \
|
||||
$(LOCAL_DIR)/aosp_arm64.mk \
|
||||
$(LOCAL_DIR)/aosp_mips64.mk
|
||||
$(LOCAL_DIR)/aosp_mips64.mk \
|
||||
$(LOCAL_DIR)/aosp_x86_64.mk
|
||||
else
|
||||
PRODUCT_MAKEFILES := \
|
||||
$(LOCAL_DIR)/core.mk \
|
||||
|
@ -59,10 +60,15 @@ PRODUCT_MAKEFILES := \
|
|||
$(LOCAL_DIR)/aosp_mips64.mk \
|
||||
$(LOCAL_DIR)/aosp_x86_64.mk \
|
||||
$(LOCAL_DIR)/full_x86_64.mk \
|
||||
$(LOCAL_DIR)/sdk_phone_armv7.mk \
|
||||
$(LOCAL_DIR)/sdk_phone_x86.mk \
|
||||
$(LOCAL_DIR)/sdk_phone_mips.mk \
|
||||
$(LOCAL_DIR)/sdk_phone_arm64.mk \
|
||||
$(LOCAL_DIR)/sdk_phone_x86_64.mk \
|
||||
$(LOCAL_DIR)/sdk_phone_mips64.mk \
|
||||
$(LOCAL_DIR)/sdk.mk \
|
||||
$(LOCAL_DIR)/sdk_x86.mk \
|
||||
$(LOCAL_DIR)/sdk_mips.mk \
|
||||
$(LOCAL_DIR)/sdk_arm64.mk \
|
||||
$(LOCAL_DIR)/sdk_x86_64.mk \
|
||||
$(LOCAL_DIR)/sdk_mips64.mk
|
||||
$(LOCAL_DIR)/sdk_x86_64.mk
|
||||
endif
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
PRODUCT_PACKAGES += \
|
||||
20-dns.conf \
|
||||
95-configured \
|
||||
appwidget \
|
||||
appops \
|
||||
am \
|
||||
android.policy \
|
||||
android.test.runner \
|
||||
|
@ -30,8 +32,8 @@ PRODUCT_PACKAGES += \
|
|||
dhcpcd \
|
||||
dhcpcd-run-hooks \
|
||||
dnsmasq \
|
||||
dpm \
|
||||
framework \
|
||||
framework2 \
|
||||
fsck_msdos \
|
||||
ime \
|
||||
input \
|
||||
|
@ -41,24 +43,28 @@ PRODUCT_PACKAGES += \
|
|||
libandroid_servers \
|
||||
libaudioeffect_jni \
|
||||
libaudioflinger \
|
||||
libaudiopolicyservice \
|
||||
libaudiopolicymanager \
|
||||
libbundlewrapper \
|
||||
libcamera_client \
|
||||
libcameraservice \
|
||||
libdl \
|
||||
libdrmclearkeyplugin \
|
||||
libeffectproxy \
|
||||
libeffects \
|
||||
libinput \
|
||||
libinputflinger \
|
||||
libiprouteutil \
|
||||
libjni_latinime \
|
||||
libjnigraphics \
|
||||
libldnhncr \
|
||||
libmedia \
|
||||
libmedia_jni \
|
||||
libmediaplayerservice \
|
||||
libmtp \
|
||||
libnetd_client \
|
||||
libnetlink \
|
||||
libnetutils \
|
||||
libpac \
|
||||
libpdfium \
|
||||
libreference-ril \
|
||||
libreverbwrapper \
|
||||
libril \
|
||||
|
@ -67,6 +73,8 @@ PRODUCT_PACKAGES += \
|
|||
libskia \
|
||||
libsonivox \
|
||||
libsoundpool \
|
||||
libsoundtrigger \
|
||||
libsoundtriggerservice \
|
||||
libsqlite \
|
||||
libstagefright \
|
||||
libstagefright_amrnb_common \
|
||||
|
@ -79,6 +87,8 @@ PRODUCT_PACKAGES += \
|
|||
libutils \
|
||||
libvisualizer \
|
||||
libvorbisidec \
|
||||
libmediandk \
|
||||
libwifi-service \
|
||||
media \
|
||||
media_cmd \
|
||||
mediaserver \
|
||||
|
@ -95,7 +105,6 @@ PRODUCT_PACKAGES += \
|
|||
racoon \
|
||||
run-as \
|
||||
schedtest \
|
||||
screenshot \
|
||||
sdcard \
|
||||
services \
|
||||
settings \
|
||||
|
@ -103,7 +112,6 @@ PRODUCT_PACKAGES += \
|
|||
tc \
|
||||
vdc \
|
||||
vold \
|
||||
webview \
|
||||
wm
|
||||
|
||||
|
||||
|
|
|
@ -22,15 +22,36 @@
|
|||
PRODUCT_PACKAGES += \
|
||||
BasicDreams \
|
||||
Browser \
|
||||
Calculator \
|
||||
Calendar \
|
||||
CalendarProvider \
|
||||
CaptivePortalLogin \
|
||||
CertInstaller \
|
||||
Contacts \
|
||||
DeskClock \
|
||||
DocumentsUI \
|
||||
DownloadProviderUi \
|
||||
Email \
|
||||
Exchange2 \
|
||||
ExternalStorageProvider \
|
||||
FusedLocation \
|
||||
InputDevices \
|
||||
KeyChain \
|
||||
Keyguard \
|
||||
LatinIME \
|
||||
Launcher2 \
|
||||
ManagedProvisioning \
|
||||
PicoTts \
|
||||
PacProcessor \
|
||||
libpac \
|
||||
PrintSpooler \
|
||||
ProxyHandler \
|
||||
QuickSearchBox \
|
||||
Settings \
|
||||
SharedStorageBackup \
|
||||
VpnDialogs
|
||||
Telecom \
|
||||
TeleService \
|
||||
VpnDialogs \
|
||||
MmsService
|
||||
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_base.mk)
|
||||
|
|
|
@ -30,15 +30,12 @@ PRODUCT_PACKAGES += \
|
|||
libandroidfw \
|
||||
libaudiopreprocessing \
|
||||
libaudioutils \
|
||||
libbcc \
|
||||
libfilterpack_imageproc \
|
||||
libgabi++ \
|
||||
libkeystore \
|
||||
libmdnssd \
|
||||
libnfc_ndef \
|
||||
libpowermanager \
|
||||
libspeexresampler \
|
||||
libstagefright_chromium_http \
|
||||
libstagefright_soft_aacdec \
|
||||
libstagefright_soft_aacenc \
|
||||
libstagefright_soft_amrdec \
|
||||
|
@ -49,9 +46,11 @@ PRODUCT_PACKAGES += \
|
|||
libstagefright_soft_gsmdec \
|
||||
libstagefright_soft_h264dec \
|
||||
libstagefright_soft_h264enc \
|
||||
libstagefright_soft_hevcdec \
|
||||
libstagefright_soft_mp3dec \
|
||||
libstagefright_soft_mpeg4dec \
|
||||
libstagefright_soft_mpeg4enc \
|
||||
libstagefright_soft_opusdec \
|
||||
libstagefright_soft_rawdec \
|
||||
libstagefright_soft_vorbisdec \
|
||||
libstagefright_soft_vpxdec \
|
||||
|
@ -59,25 +58,7 @@ PRODUCT_PACKAGES += \
|
|||
libvariablespeed \
|
||||
libwebrtc_audio_preprocessing \
|
||||
mdnsd \
|
||||
mms-common \
|
||||
requestsync \
|
||||
telephony-common \
|
||||
voip-common
|
||||
wifi-service
|
||||
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_minimal.mk)
|
||||
# Override the PRODUCT_BOOT_JARS set in core_minimal.mk. The order matters.
|
||||
PRODUCT_BOOT_JARS := \
|
||||
core-libart \
|
||||
conscrypt \
|
||||
okhttp \
|
||||
core-junit \
|
||||
bouncycastle \
|
||||
ext \
|
||||
framework \
|
||||
framework2 \
|
||||
telephony-common \
|
||||
voip-common \
|
||||
mms-common \
|
||||
android.policy \
|
||||
services \
|
||||
apache-xml
|
||||
|
|
|
@ -32,33 +32,51 @@ PRODUCT_PACKAGES += \
|
|||
Shell \
|
||||
bcc \
|
||||
bu \
|
||||
com.android.future.usb.accessory \
|
||||
com.android.location.provider \
|
||||
com.android.location.provider.xml \
|
||||
com.android.media.remotedisplay \
|
||||
com.android.media.remotedisplay.xml \
|
||||
com.android.mediadrm.signer \
|
||||
com.android.mediadrm.signer.xml \
|
||||
drmserver \
|
||||
ethernet-service \
|
||||
framework-res \
|
||||
idmap \
|
||||
installd \
|
||||
ims-common \
|
||||
ip \
|
||||
ip-up-vpn \
|
||||
ip6tables \
|
||||
iptables \
|
||||
keystore \
|
||||
keystore.default \
|
||||
libbcc \
|
||||
libOpenMAXAL \
|
||||
libOpenSLES \
|
||||
libdownmix \
|
||||
libdrmframework \
|
||||
libdrmframework_jni \
|
||||
libfilterfw \
|
||||
libkeystore \
|
||||
libsqlite_jni \
|
||||
libwilhelm \
|
||||
logd \
|
||||
make_ext4fs \
|
||||
e2fsck \
|
||||
resize2fs \
|
||||
mms-common \
|
||||
screencap \
|
||||
sensorservice \
|
||||
uiautomator
|
||||
telephony-common \
|
||||
uiautomator \
|
||||
uncrypt \
|
||||
voip-common \
|
||||
webview \
|
||||
wifi-service
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/android.software.webview.xml:system/etc/permissions/android.software.webview.xml
|
||||
|
||||
# The order of PRODUCT_BOOT_JARS matters.
|
||||
PRODUCT_BOOT_JARS := \
|
||||
|
@ -69,10 +87,18 @@ PRODUCT_BOOT_JARS := \
|
|||
bouncycastle \
|
||||
ext \
|
||||
framework \
|
||||
framework2 \
|
||||
telephony-common \
|
||||
voip-common \
|
||||
ims-common \
|
||||
mms-common \
|
||||
android.policy \
|
||||
apache-xml \
|
||||
|
||||
# The order of PRODUCT_SYSTEM_SERVER_JARS matters.
|
||||
PRODUCT_SYSTEM_SERVER_JARS := \
|
||||
services \
|
||||
apache-xml
|
||||
ethernet-service \
|
||||
wifi-service
|
||||
|
||||
PRODUCT_RUNTIMES := runtime_libart_default
|
||||
|
||||
|
|
|
@ -0,0 +1,119 @@
|
|||
#
|
||||
# Copyright (C) 2013 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# Tiny configuration for small devices such as wearables. Includes base and embedded.
|
||||
# No telephony
|
||||
|
||||
PRODUCT_PACKAGES := \
|
||||
Bluetooth \
|
||||
CalendarProvider \
|
||||
ContactsProvider \
|
||||
CertInstaller \
|
||||
FusedLocation \
|
||||
InputDevices
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
clatd \
|
||||
clatd.conf \
|
||||
pppd
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
audio.primary.default \
|
||||
audio_policy.default \
|
||||
local_time.default \
|
||||
power.default
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
local_time.default
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
BackupRestoreConfirmation \
|
||||
DefaultContainerService \
|
||||
SettingsProvider \
|
||||
Shell \
|
||||
bu \
|
||||
com.android.location.provider \
|
||||
com.android.location.provider.xml \
|
||||
framework-res \
|
||||
installd \
|
||||
ims-common \
|
||||
ip \
|
||||
ip-up-vpn \
|
||||
ip6tables \
|
||||
iptables \
|
||||
keystore \
|
||||
keystore.default \
|
||||
libOpenMAXAL \
|
||||
libOpenSLES \
|
||||
libdownmix \
|
||||
libfilterfw \
|
||||
libkeystore \
|
||||
libsqlite_jni \
|
||||
libwilhelm \
|
||||
libdrmframework_jni \
|
||||
libdrmframework \
|
||||
make_ext4fs \
|
||||
e2fsck \
|
||||
resize2fs \
|
||||
nullwebview \
|
||||
screencap \
|
||||
sensorservice \
|
||||
uiautomator \
|
||||
uncrypt \
|
||||
telephony-common \
|
||||
voip-common \
|
||||
logd \
|
||||
mms-common \
|
||||
wifi-service
|
||||
|
||||
# The order matters
|
||||
PRODUCT_BOOT_JARS := \
|
||||
core-libart \
|
||||
conscrypt \
|
||||
okhttp \
|
||||
core-junit \
|
||||
bouncycastle \
|
||||
ext \
|
||||
framework \
|
||||
telephony-common \
|
||||
voip-common \
|
||||
ims-common \
|
||||
mms-common \
|
||||
android.policy \
|
||||
apache-xml \
|
||||
nullwebview \
|
||||
|
||||
# The order of PRODUCT_SYSTEM_SERVER_JARS matters.
|
||||
PRODUCT_SYSTEM_SERVER_JARS := \
|
||||
services \
|
||||
wifi-service
|
||||
|
||||
PRODUCT_RUNTIMES := runtime_libart_default
|
||||
|
||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
|
||||
ro.zygote=zygote32
|
||||
PRODUCT_COPY_FILES += \
|
||||
system/core/rootdir/init.zygote32.rc:root/init.zygote32.rc
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.carrier=unknown
|
||||
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/base.mk)
|
||||
$(call inherit-product-if-exists, frameworks/base/data/fonts/fonts.mk)
|
||||
|
||||
# Overrides
|
||||
PRODUCT_BRAND := tiny
|
||||
PRODUCT_DEVICE := tiny
|
||||
PRODUCT_NAME := core_tiny
|
|
@ -20,6 +20,7 @@
|
|||
PRODUCT_PACKAGES += \
|
||||
adb \
|
||||
adbd \
|
||||
atrace \
|
||||
bootanimation \
|
||||
debuggerd \
|
||||
dumpstate \
|
||||
|
@ -55,6 +56,7 @@ PRODUCT_PACKAGES += \
|
|||
libui \
|
||||
libutils \
|
||||
linker \
|
||||
lmkd \
|
||||
logcat \
|
||||
logwrapper \
|
||||
mkshrc \
|
||||
|
|
|
@ -22,11 +22,9 @@
|
|||
PRODUCT_PACKAGES := \
|
||||
libfwdlockengine \
|
||||
OpenWnn \
|
||||
PinyinIME \
|
||||
libWnnEngDic \
|
||||
libWnnJpnDic \
|
||||
libwnndict \
|
||||
VideoEditor \
|
||||
WAPPushManager
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
|
|
|
@ -27,7 +27,8 @@ PRODUCT_PROPERTY_OVERRIDES := \
|
|||
ro.com.android.dataroaming=true
|
||||
|
||||
PRODUCT_COPY_FILES := \
|
||||
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml
|
||||
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
|
||||
frameworks/native/data/etc/handheld_core_hardware.xml:system/etc/permissions/handheld_core_hardware.xml
|
||||
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony.mk)
|
||||
|
|
|
@ -17,33 +17,15 @@
|
|||
# This is a generic phone product that isn't specialized for a specific device.
|
||||
# It includes the base Android platform.
|
||||
|
||||
PRODUCT_POLICY := android.policy_phone
|
||||
|
||||
PRODUCT_PACKAGES := \
|
||||
DeskClock \
|
||||
Bluetooth \
|
||||
Calculator \
|
||||
Calendar \
|
||||
Camera2 \
|
||||
CertInstaller \
|
||||
Email \
|
||||
Exchange2 \
|
||||
FusedLocation \
|
||||
Gallery2 \
|
||||
InputDevices \
|
||||
Keyguard \
|
||||
LatinIME \
|
||||
Launcher2 \
|
||||
Music \
|
||||
MusicFX \
|
||||
OneTimeInitializer \
|
||||
PrintSpooler \
|
||||
Provision \
|
||||
QuickSearchBox \
|
||||
Settings \
|
||||
SystemUI \
|
||||
TeleService \
|
||||
CalendarProvider \
|
||||
WallpaperCropper
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
|
@ -80,9 +62,9 @@ $(call inherit-product-if-exists, frameworks/base/data/fonts/fonts.mk)
|
|||
$(call inherit-product-if-exists, external/google-fonts/dancing-script/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/google-fonts/carrois-gothic-sc/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/google-fonts/coming-soon/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/google-fonts/cutive-mono/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/noto-fonts/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/naver-fonts/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/sil-fonts/fonts.mk)
|
||||
$(call inherit-product-if-exists, frameworks/base/data/keyboards/keyboards.mk)
|
||||
$(call inherit-product-if-exists, frameworks/webview/chromium/chromium.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk)
|
||||
|
|
|
@ -21,4 +21,4 @@
|
|||
|
||||
# These are all the locales that have translations and are displayable
|
||||
# by TextView in this branch.
|
||||
PRODUCT_LOCALES := en_US en_IN fr_FR it_IT es_ES et_EE de_DE nl_NL cs_CZ pl_PL ja_JP zh_TW zh_CN zh_HK ru_RU ko_KR nb_NO es_US da_DK el_GR tr_TR pt_PT pt_BR rm_CH sv_SE bg_BG ca_ES en_GB fi_FI hi_IN hr_HR hu_HU in_ID iw_IL lt_LT lv_LV ro_RO sk_SK sl_SI sr_RS uk_UA vi_VN tl_PH ar_EG fa_IR th_TH sw_TZ ms_MY af_ZA zu_ZA am_ET hi_IN en_XA ar_XB fr_CA km_KH lo_LA ne_NP si_LK mn_MN hy_AM az_AZ ka_GE
|
||||
PRODUCT_LOCALES := en_AU en_US en_IN fr_FR it_IT es_ES et_EE de_DE nl_NL cs_CZ pl_PL ja_JP zh_TW zh_CN zh_HK ru_RU ko_KR nb_NO es_US da_DK el_GR tr_TR pt_PT pt_BR rm_CH sv_SE bg_BG ca_ES en_GB fi_FI hi_IN hr_HR hu_HU in_ID iw_IL lt_LT lv_LV ro_RO sk_SK sl_SI sr_RS uk_UA vi_VN tl_PH ar_EG fa_IR th_TH sw_TZ ms_MY af_ZA zu_ZA am_ET hi_IN en_XA ar_XB fr_CA km_KH lo_LA ne_NP si_LK mn_MN hy_AM az_AZ ka_GE my_MM mr_IN ml_IN is_IS mk_MK ky_KG eu_ES gl_ES bn_BD ta_IN kn_IN te_IN uz_UZ ur_PK kk_KZ
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (C) 2007 The Android Open Source Project
|
||||
# Copyright (C) 2014 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
@ -14,170 +14,8 @@
|
|||
# limitations under the License.
|
||||
#
|
||||
|
||||
PRODUCT_POLICY := android.policy_phone
|
||||
PRODUCT_PROPERTY_OVERRIDES :=
|
||||
# Don't modify this file - It's just an alias!
|
||||
|
||||
PRODUCT_PACKAGES := \
|
||||
Calculator \
|
||||
DeskClock \
|
||||
Email \
|
||||
Exchange2 \
|
||||
FusedLocation \
|
||||
Gallery \
|
||||
Keyguard \
|
||||
Music \
|
||||
Mms \
|
||||
OpenWnn \
|
||||
PrintSpooler \
|
||||
libWnnEngDic \
|
||||
libWnnJpnDic \
|
||||
libwnndict \
|
||||
TeleService \
|
||||
PinyinIME \
|
||||
Protips \
|
||||
SoftKeyboard \
|
||||
SystemUI \
|
||||
Launcher2 \
|
||||
Development \
|
||||
DevelopmentSettings \
|
||||
Fallback \
|
||||
Settings \
|
||||
SdkSetup \
|
||||
CustomLocale \
|
||||
sqlite3 \
|
||||
InputDevices \
|
||||
LatinIME \
|
||||
CertInstaller \
|
||||
LiveWallpapersPicker \
|
||||
ApiDemos \
|
||||
GestureBuilder \
|
||||
CubeLiveWallpapers \
|
||||
QuickSearchBox \
|
||||
WidgetPreview \
|
||||
librs_jni \
|
||||
CalendarProvider \
|
||||
Calendar \
|
||||
SmokeTest \
|
||||
SmokeTestApp \
|
||||
EmulatorSmokeTests \
|
||||
rild \
|
||||
LegacyCamera \
|
||||
Dialer
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_phone_armv7.mk)
|
||||
|
||||
|
||||
# Define the host tools and libs that are parts of the SDK.
|
||||
-include sdk/build/product_sdk.mk
|
||||
-include development/build/product_sdk.mk
|
||||
|
||||
# audio libraries.
|
||||
PRODUCT_PACKAGES += \
|
||||
audio.primary.goldfish \
|
||||
audio_policy.default \
|
||||
local_time.default
|
||||
|
||||
PRODUCT_PACKAGE_OVERLAYS := development/sdk_overlay
|
||||
|
||||
PRODUCT_COPY_FILES := \
|
||||
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
|
||||
frameworks/base/data/sounds/effects/camera_click.ogg:system/media/audio/ui/camera_click.ogg \
|
||||
frameworks/base/data/sounds/effects/VideoRecord.ogg:system/media/audio/ui/VideoRecord.ogg \
|
||||
frameworks/native/data/etc/handheld_core_hardware.xml:system/etc/permissions/handheld_core_hardware.xml \
|
||||
device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \
|
||||
device/generic/goldfish/camera/media_codecs.xml:system/etc/media_codecs.xml \
|
||||
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
|
||||
frameworks/native/data/etc/android.hardware.camera.autofocus.xml:system/etc/permissions/android.hardware.camera.autofocus.xml \
|
||||
frameworks/av/media/libeffects/data/audio_effects.conf:system/etc/audio_effects.conf \
|
||||
hardware/libhardware_legacy/audio/audio_policy.conf:system/etc/audio_policy.conf
|
||||
|
||||
include $(SRC_TARGET_DIR)/product/emulator.mk
|
||||
|
||||
$(call inherit-product-if-exists, frameworks/base/data/sounds/AllAudio.mk)
|
||||
$(call inherit-product-if-exists, frameworks/base/data/fonts/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/google-fonts/dancing-script/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/google-fonts/carrois-gothic-sc/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/google-fonts/coming-soon/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/noto-fonts/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/naver-fonts/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/sil-fonts/fonts.mk)
|
||||
$(call inherit-product-if-exists, frameworks/base/data/keyboards/keyboards.mk)
|
||||
$(call inherit-product-if-exists, frameworks/webview/chromium/chromium.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk)
|
||||
|
||||
# Overrides
|
||||
PRODUCT_BRAND := generic
|
||||
PRODUCT_NAME := sdk
|
||||
PRODUCT_DEVICE := generic
|
||||
|
||||
# locale + densities. en_US is both first and in alphabetical order to
|
||||
# ensure this is the default locale.
|
||||
PRODUCT_LOCALES = \
|
||||
en_US \
|
||||
ldpi \
|
||||
hdpi \
|
||||
mdpi \
|
||||
xhdpi \
|
||||
ar_EG \
|
||||
ar_IL \
|
||||
bg_BG \
|
||||
ca_ES \
|
||||
cs_CZ \
|
||||
da_DK \
|
||||
de_AT \
|
||||
de_CH \
|
||||
de_DE \
|
||||
de_LI \
|
||||
el_GR \
|
||||
en_AU \
|
||||
en_CA \
|
||||
en_GB \
|
||||
en_IE \
|
||||
en_IN \
|
||||
en_NZ \
|
||||
en_SG \
|
||||
en_US \
|
||||
en_ZA \
|
||||
es_ES \
|
||||
es_US \
|
||||
fi_FI \
|
||||
fr_BE \
|
||||
fr_CA \
|
||||
fr_CH \
|
||||
fr_FR \
|
||||
he_IL \
|
||||
hi_IN \
|
||||
hr_HR \
|
||||
hu_HU \
|
||||
id_ID \
|
||||
it_CH \
|
||||
it_IT \
|
||||
ja_JP \
|
||||
ko_KR \
|
||||
lt_LT \
|
||||
lv_LV \
|
||||
nb_NO \
|
||||
nl_BE \
|
||||
nl_NL \
|
||||
pl_PL \
|
||||
pt_BR \
|
||||
pt_PT \
|
||||
ro_RO \
|
||||
ru_RU \
|
||||
sk_SK \
|
||||
sl_SI \
|
||||
sr_RS \
|
||||
sv_SE \
|
||||
th_TH \
|
||||
tl_PH \
|
||||
tr_TR \
|
||||
uk_UA \
|
||||
vi_VN \
|
||||
zh_CN \
|
||||
zh_TW
|
||||
|
||||
# include available languages for TTS in the system image
|
||||
-include external/svox/pico/lang/PicoLangDeDeInSystem.mk
|
||||
-include external/svox/pico/lang/PicoLangEnGBInSystem.mk
|
||||
-include external/svox/pico/lang/PicoLangEnUsInSystem.mk
|
||||
-include external/svox/pico/lang/PicoLangEsEsInSystem.mk
|
||||
-include external/svox/pico/lang/PicoLangFrFrInSystem.mk
|
||||
-include external/svox/pico/lang/PicoLangItItInSystem.mk
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (C) 2009 The Android Open Source Project
|
||||
# Copyright (C) 2014 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
@ -14,17 +14,8 @@
|
|||
# limitations under the License.
|
||||
#
|
||||
|
||||
# This is a build configuration for a full-featured build of the
|
||||
# Open-Source part of the tree. It's geared toward a US-centric
|
||||
# build quite specifically for the emulator, and might not be
|
||||
# entirely appropriate to inherit from for on-device configurations.
|
||||
# Don't modify this file - It's just an alias!
|
||||
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/board/generic_arm64/device.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_phone_arm64.mk)
|
||||
|
||||
# Overrides
|
||||
PRODUCT_BRAND := generic_arm64
|
||||
PRODUCT_NAME := sdk_arm64
|
||||
PRODUCT_DEVICE := generic_arm64
|
||||
PRODUCT_MODEL := Android SDK built for arm64
|
||||
|
|
|
@ -0,0 +1,162 @@
|
|||
#
|
||||
# Copyright (C) 2007 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES :=
|
||||
|
||||
PRODUCT_PACKAGES := \
|
||||
ApiDemos \
|
||||
CubeLiveWallpapers \
|
||||
CustomLocale \
|
||||
Development \
|
||||
DevelopmentSettings \
|
||||
Dialer \
|
||||
EmulatorSmokeTests \
|
||||
Fallback \
|
||||
Gallery \
|
||||
GestureBuilder \
|
||||
LegacyCamera \
|
||||
librs_jni \
|
||||
libwnndict \
|
||||
libWnnEngDic \
|
||||
libWnnJpnDic \
|
||||
LiveWallpapersPicker \
|
||||
Mms \
|
||||
Music \
|
||||
OpenWnn \
|
||||
Protips \
|
||||
rild \
|
||||
SdkSetup \
|
||||
SmokeTest \
|
||||
SmokeTestApp \
|
||||
SoftKeyboard \
|
||||
sqlite3 \
|
||||
SystemUI \
|
||||
WidgetPreview
|
||||
|
||||
# Define the host tools and libs that are parts of the SDK.
|
||||
-include sdk/build/product_sdk.mk
|
||||
-include development/build/product_sdk.mk
|
||||
|
||||
# audio libraries.
|
||||
PRODUCT_PACKAGES += \
|
||||
audio.primary.goldfish \
|
||||
audio_policy.default \
|
||||
local_time.default
|
||||
|
||||
PRODUCT_PACKAGE_OVERLAYS := development/sdk_overlay
|
||||
|
||||
PRODUCT_COPY_FILES := \
|
||||
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
|
||||
frameworks/base/data/sounds/effects/camera_click.ogg:system/media/audio/ui/camera_click.ogg \
|
||||
frameworks/base/data/sounds/effects/VideoRecord.ogg:system/media/audio/ui/VideoRecord.ogg \
|
||||
frameworks/native/data/etc/handheld_core_hardware.xml:system/etc/permissions/handheld_core_hardware.xml \
|
||||
device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \
|
||||
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \
|
||||
device/generic/goldfish/camera/media_codecs.xml:system/etc/media_codecs.xml \
|
||||
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
|
||||
frameworks/native/data/etc/android.hardware.camera.autofocus.xml:system/etc/permissions/android.hardware.camera.autofocus.xml \
|
||||
frameworks/av/media/libeffects/data/audio_effects.conf:system/etc/audio_effects.conf \
|
||||
hardware/libhardware_legacy/audio/audio_policy.conf:system/etc/audio_policy.conf
|
||||
|
||||
include $(SRC_TARGET_DIR)/product/emulator.mk
|
||||
|
||||
$(call inherit-product-if-exists, frameworks/base/data/sounds/AllAudio.mk)
|
||||
$(call inherit-product-if-exists, frameworks/base/data/fonts/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/google-fonts/dancing-script/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/google-fonts/carrois-gothic-sc/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/google-fonts/coming-soon/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/google-fonts/cutive-mono/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/noto-fonts/fonts.mk)
|
||||
$(call inherit-product-if-exists, external/naver-fonts/fonts.mk)
|
||||
$(call inherit-product-if-exists, frameworks/base/data/keyboards/keyboards.mk)
|
||||
$(call inherit-product-if-exists, frameworks/webview/chromium/chromium.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk)
|
||||
|
||||
# include available languages for TTS in the system image
|
||||
-include external/svox/pico/lang/PicoLangDeDeInSystem.mk
|
||||
-include external/svox/pico/lang/PicoLangEnGBInSystem.mk
|
||||
-include external/svox/pico/lang/PicoLangEnUsInSystem.mk
|
||||
-include external/svox/pico/lang/PicoLangEsEsInSystem.mk
|
||||
-include external/svox/pico/lang/PicoLangFrFrInSystem.mk
|
||||
-include external/svox/pico/lang/PicoLangItItInSystem.mk
|
||||
|
||||
# locale + densities. en_US is both first and in alphabetical order to
|
||||
# ensure this is the default locale.
|
||||
PRODUCT_LOCALES := \
|
||||
en_US \
|
||||
ldpi \
|
||||
hdpi \
|
||||
mdpi \
|
||||
xhdpi \
|
||||
ar_EG \
|
||||
ar_IL \
|
||||
bg_BG \
|
||||
ca_ES \
|
||||
cs_CZ \
|
||||
da_DK \
|
||||
de_AT \
|
||||
de_CH \
|
||||
de_DE \
|
||||
de_LI \
|
||||
el_GR \
|
||||
en_AU \
|
||||
en_CA \
|
||||
en_GB \
|
||||
en_IE \
|
||||
en_IN \
|
||||
en_NZ \
|
||||
en_SG \
|
||||
en_US \
|
||||
en_ZA \
|
||||
es_ES \
|
||||
es_US \
|
||||
fi_FI \
|
||||
fr_BE \
|
||||
fr_CA \
|
||||
fr_CH \
|
||||
fr_FR \
|
||||
he_IL \
|
||||
hi_IN \
|
||||
hr_HR \
|
||||
hu_HU \
|
||||
id_ID \
|
||||
it_CH \
|
||||
it_IT \
|
||||
ja_JP \
|
||||
ko_KR \
|
||||
lt_LT \
|
||||
lv_LV \
|
||||
nb_NO \
|
||||
nl_BE \
|
||||
nl_NL \
|
||||
pl_PL \
|
||||
pt_BR \
|
||||
pt_PT \
|
||||
ro_RO \
|
||||
ru_RU \
|
||||
sk_SK \
|
||||
sl_SI \
|
||||
sr_RS \
|
||||
sv_SE \
|
||||
th_TH \
|
||||
tl_PH \
|
||||
tr_TR \
|
||||
uk_UA \
|
||||
vi_VN \
|
||||
zh_CN \
|
||||
zh_TW
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (C) 2012 The Android Open Source Project
|
||||
# Copyright (C) 2014 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
@ -14,15 +14,8 @@
|
|||
# limitations under the License.
|
||||
#
|
||||
|
||||
# This is a build configuration for a full-featured build of the
|
||||
# Open-Source part of the tree. It's geared toward a US-centric
|
||||
# build quite specifically for the emulator, and might not be
|
||||
# entirely appropriate to inherit from for on-device configurations.
|
||||
# Don't modify this file - It's just an alias!
|
||||
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_phone_mips.mk)
|
||||
|
||||
# Overrides
|
||||
PRODUCT_BRAND := generic_mips
|
||||
PRODUCT_NAME := sdk_mips
|
||||
PRODUCT_DEVICE := generic_mips
|
||||
PRODUCT_MODEL := Android SDK for Mips
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
#
|
||||
# Copyright (C) 2009 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# This is a build configuration for a full-featured build of the
|
||||
# Open-Source part of the tree. It's geared toward a US-centric
|
||||
# build quite specifically for the emulator, and might not be
|
||||
# entirely appropriate to inherit from for on-device configurations.
|
||||
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_base.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/board/generic_arm64/device.mk)
|
||||
|
||||
# Overrides
|
||||
PRODUCT_BRAND := generic_arm64
|
||||
PRODUCT_NAME := sdk_phone_arm64
|
||||
PRODUCT_DEVICE := generic_arm64
|
||||
PRODUCT_MODEL := Android SDK built for arm64
|
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# Copyright (C) 2007 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_base.mk)
|
||||
|
||||
# Overrides
|
||||
PRODUCT_BRAND := generic
|
||||
PRODUCT_NAME := sdk_phone_armv7
|
||||
PRODUCT_DEVICE := generic
|
|
@ -0,0 +1,28 @@
|
|||
#
|
||||
# Copyright (C) 2012 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# This is a build configuration for a full-featured build of the
|
||||
# Open-Source part of the tree. It's geared toward a US-centric
|
||||
# build quite specifically for the emulator, and might not be
|
||||
# entirely appropriate to inherit from for on-device configurations.
|
||||
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_base.mk)
|
||||
|
||||
# Overrides
|
||||
PRODUCT_BRAND := generic_mips
|
||||
PRODUCT_NAME := sdk_phone_mips
|
||||
PRODUCT_DEVICE := generic_mips
|
||||
PRODUCT_MODEL := Android SDK for Mips
|
|
@ -20,10 +20,10 @@
|
|||
# entirely appropriate to inherit from for on-device configurations.
|
||||
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_base.mk)
|
||||
|
||||
# Overrides
|
||||
PRODUCT_BRAND := generic_mips64
|
||||
PRODUCT_NAME := sdk_mips64
|
||||
PRODUCT_NAME := sdk_phone_mips64
|
||||
PRODUCT_DEVICE := generic_mips64
|
||||
PRODUCT_MODEL := Android SDK built for mips64
|
|
@ -0,0 +1,28 @@
|
|||
#
|
||||
# Copyright (C) 2009 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# This is a build configuration for a full-featured build of the
|
||||
# Open-Source part of the tree. It's geared toward a US-centric
|
||||
# build quite specifically for the emulator, and might not be
|
||||
# entirely appropriate to inherit from for on-device configurations.
|
||||
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_base.mk)
|
||||
|
||||
# Overrides
|
||||
PRODUCT_BRAND := generic_x86
|
||||
PRODUCT_NAME := sdk_phone_x86
|
||||
PRODUCT_DEVICE := generic_x86
|
||||
PRODUCT_MODEL := Android SDK built for x86
|
|
@ -0,0 +1,29 @@
|
|||
#
|
||||
# Copyright (C) 2009 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# This is a build configuration for a full-featured build of the
|
||||
# Open-Source part of the tree. It's geared toward a US-centric
|
||||
# build quite specifically for the emulator, and might not be
|
||||
# entirely appropriate to inherit from for on-device configurations.
|
||||
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_base.mk)
|
||||
|
||||
# Overrides
|
||||
PRODUCT_BRAND := generic_x86_64
|
||||
PRODUCT_NAME := sdk_phone_x86_64
|
||||
PRODUCT_DEVICE := generic_x86_64
|
||||
PRODUCT_MODEL := Android SDK built for x86_64
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (C) 2009 The Android Open Source Project
|
||||
# Copyright (C) 2014 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
@ -14,15 +14,8 @@
|
|||
# limitations under the License.
|
||||
#
|
||||
|
||||
# This is a build configuration for a full-featured build of the
|
||||
# Open-Source part of the tree. It's geared toward a US-centric
|
||||
# build quite specifically for the emulator, and might not be
|
||||
# entirely appropriate to inherit from for on-device configurations.
|
||||
# Don't modify this file - It's just an alias!
|
||||
|
||||
include $(SRC_TARGET_DIR)/product/sdk.mk
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_phone_x86.mk)
|
||||
|
||||
# Overrides
|
||||
PRODUCT_BRAND := generic_x86
|
||||
PRODUCT_NAME := sdk_x86
|
||||
PRODUCT_DEVICE := generic_x86
|
||||
PRODUCT_MODEL := Android SDK built for x86
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (C) 2009 The Android Open Source Project
|
||||
# Copyright (C) 2014 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
@ -14,16 +14,8 @@
|
|||
# limitations under the License.
|
||||
#
|
||||
|
||||
# This is a build configuration for a full-featured build of the
|
||||
# Open-Source part of the tree. It's geared toward a US-centric
|
||||
# build quite specifically for the emulator, and might not be
|
||||
# entirely appropriate to inherit from for on-device configurations.
|
||||
# Don't modify this file - It's just an alias!
|
||||
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_phone_x86_64.mk)
|
||||
|
||||
# Overrides
|
||||
PRODUCT_BRAND := generic_x86_64
|
||||
PRODUCT_NAME := sdk_x86_64
|
||||
PRODUCT_DEVICE := generic_x86_64
|
||||
PRODUCT_MODEL := Android SDK built for x86_64
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
LOCAL_PATH:= $(call my-dir)
|
||||
|
||||
#######################################
|
||||
# verity_key
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := verity_key
|
||||
LOCAL_SRC_FILES := $(LOCAL_MODULE)
|
||||
LOCAL_MODULE_CLASS := ETC
|
||||
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
|
||||
|
||||
include $(BUILD_PREBUILT)
|
Binary file not shown.
|
@ -0,0 +1,28 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDQxdVrH2RB1eg5
|
||||
17/gBmLzW1Ds10RG6ctNZMhxppMOLnEZViKGv1VNRhxqK/JKTv2UujgZ94SJcDub
|
||||
G+DwAwaGZKQqDYUa0VU2cng8TYPcnYGPdJ7Usckp6tdg64vns7e+VVf0dOyEovR+
|
||||
JyeYUz05OhUMYP9xJIhpA2XnXe5Ekb9iTFSYo9uBpoXDD4IY7aOqUxSbv9wMtyIp
|
||||
dl+oTm0+kqRRi4KoxGHV0CzDseEUuWG/Kp/7aVF9Sg45NcC6KYvrGysUKA+Bt09O
|
||||
feDn/HRpT9SfRElJa5DRms33UBUtnom15F4yd4vvFgubB0nkPOUuwfZhTFfgeuY4
|
||||
H2bHkjKbAgMBAAECggEAMpFYqkPGQvQO9cO+ZALoAM4Dgfp6PTrv1WUt7+lLAUpa
|
||||
dqqYXk8F2Fu9EjJm03ziix237QI5Bhk7Nsy/5SK2d+L0qILx1JcTrsZ3PRQBdnRo
|
||||
J1k2B4qwkQii9oTXNF4hiWaekUWo7E+ULOJLAuhWkf/xjTgJZ1xT9iuuiSYFSnIa
|
||||
9ABNH0vCaKEkW/4ri6fdtXmO26C/ltJlnozl86x07PIFh4uBas7/40E8ykFP00CS
|
||||
zdhMh+2DGyCb1Q0eJ1IfGILNatkLNEd2BHgQ7qNBkN9yShZfhvIPblr5gSUlZplX
|
||||
diV20ZGLAfByKWgZZWKkwl9KzaisL/J/4dr2UlSVEQKBgQDxAYTsgoTkkP0TKzr3
|
||||
i3ljT8OuVOj6TwZVBJYe2MIJ3veivS3gWB53FpsKthbib7y8ifIakn15mQkNCK5R
|
||||
7H7F5lvZCNnB6shY5Dz7nLJxKLALcAg+d12l3gTbFQeFDs0iQQJF7P8hs/GPF7kY
|
||||
Layb7EF0uzYjyHJCKtFdaZaeZwKBgQDdwvCb7NJVeGTcE97etL+8acu9y4GlqKEF
|
||||
o0Vkw8TjNKj/KuDkbkAk9hXxU1ZCmDU3y6r8CVHYl0Sqh08plEhkYB/j3sFy81zY
|
||||
3xu/rLFysBwjeJHHlPjRTYkdKr9pABmm8NIEShvu9u8i+mpOhjbX72HxZL+i4Fou
|
||||
gz58wEdBrQKBgG8CfyKdn+7UJe3tbLTXRquK8xxauhGJ0uXYPfmpZ/8596C7OOVs
|
||||
UWQTQoj1hKb6RtolRCIfNbKL3hJl3D2aDG7Fg6r9m6fpqCzhvIE9FShwUF6EVRfI
|
||||
zZb4JA5xqkwMnEpZ3V0uI/p3Mx3xFG3ho+8SLLhC/1YOHysBI/y+BQWjAoGAYiqQ
|
||||
PkXYWhOAeleleeqDUdF3al3y1zVNimRbLJ7owjcmdEYz5YrUhEgXMIvWjIY6UKes
|
||||
2gL6IynbMK3TIjHM1fojQ8jw04TdXfdtnizBJGbHHgCab8IHXwe2oZ2xu7ZapKbI
|
||||
ITP5J5BSDabSdk49attB/Qy/NEeiRCK+/5RSNsUCgYAg6vX9VqMEkhPHeoFfdLGD
|
||||
EQPPN6QLrQ4Zif0GKxH96znNSv0rXdNp9t0kyapdgzMuCwIEuOkCSiKgmfjTWnYO
|
||||
qh5HMUuD2VbfWwI9jVujQMRmqiaFF7VxxA1bP5j1hJlI6cn1Fjlpi+NsNZN4nm3Q
|
||||
92SEwX2vDgjrU0NAtFFL1Q==
|
||||
-----END PRIVATE KEY-----
|
|
@ -0,0 +1,23 @@
|
|||
#
|
||||
# Copyright (C) 2014 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# Provides dependencies necessary for verified boot
|
||||
|
||||
PRODUCT_SUPPORTS_VERITY := true
|
||||
PRODUCT_VERITY_SIGNING_KEY := build/target/product/security/verity_private_dev_key
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
verity_key
|
|
@ -90,6 +90,26 @@ debug_printf(const char* format, ...)
|
|||
}
|
||||
}
|
||||
|
||||
// Escape the filename so that it can be added to the makefile properly.
|
||||
static string
|
||||
escape_filename(const string name)
|
||||
{
|
||||
ostringstream new_name;
|
||||
for (string::const_iterator iter = name.begin(); iter != name.end(); ++iter)
|
||||
{
|
||||
switch (*iter)
|
||||
{
|
||||
case '$':
|
||||
new_name << "$$";
|
||||
break;
|
||||
default:
|
||||
new_name << *iter;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return new_name.str();
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char* const* argv)
|
||||
{
|
||||
|
@ -324,7 +344,8 @@ main(int argc, char* const* argv)
|
|||
for (vector<FileRecord>::iterator it=files.begin();
|
||||
it!=files.end(); it++) {
|
||||
if (!it->sourceIsDir) {
|
||||
fprintf(f, "%s \\\n", it->sourcePath.c_str());
|
||||
fprintf(f, "%s \\\n",
|
||||
escape_filename(it->sourcePath).c_str());
|
||||
}
|
||||
}
|
||||
fprintf(f, "\n");
|
||||
|
|
|
@ -8,6 +8,7 @@ echo "ro.build.display.id=$BUILD_DISPLAY_ID"
|
|||
echo "ro.build.version.incremental=$BUILD_NUMBER"
|
||||
echo "ro.build.version.sdk=$PLATFORM_SDK_VERSION"
|
||||
echo "ro.build.version.codename=$PLATFORM_VERSION_CODENAME"
|
||||
echo "ro.build.version.all_codenames=$PLATFORM_VERSION_ALL_CODENAMES"
|
||||
echo "ro.build.version.release=$PLATFORM_VERSION"
|
||||
echo "ro.build.date=`date`"
|
||||
echo "ro.build.date.utc=`date +%s`"
|
||||
|
@ -46,9 +47,12 @@ echo "ro.board.platform=$TARGET_BOARD_PLATFORM"
|
|||
echo "# ro.build.product is obsolete; use ro.product.device"
|
||||
echo "ro.build.product=$TARGET_DEVICE"
|
||||
|
||||
echo "# Do not try to parse ro.build.description or .fingerprint"
|
||||
echo "# Do not try to parse description, fingerprint, or thumbprint"
|
||||
echo "ro.build.description=$PRIVATE_BUILD_DESC"
|
||||
echo "ro.build.fingerprint=$BUILD_FINGERPRINT"
|
||||
if [ -n "$BUILD_THUMBPRINT" ] ; then
|
||||
echo "ro.build.thumbprint=$BUILD_THUMBPRINT"
|
||||
fi
|
||||
echo "ro.build.characteristics=$TARGET_AAPT_CHARACTERISTICS"
|
||||
|
||||
echo "# end build properties"
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
<?cs /if ?>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs call:class_table("Annotations", package.annotations) ?>
|
||||
<?cs call:class_table("Interfaces", package.interfaces) ?>
|
||||
<?cs call:class_table("Classes", package.classes) ?>
|
||||
<?cs call:class_table("Enums", package.enums) ?>
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
|
@ -2,8 +2,8 @@
|
|||
def:custom_masthead() ?>
|
||||
<div id="header">
|
||||
<div id="headerLeft">
|
||||
<a href="<?cs var:toroot ?>guide/getting_started.html"><img
|
||||
src="<?cs var:toroot ?>assets/images/open_source.png" alt="Android Open Source Project" /></a>
|
||||
<a href="<?cs var:toroot ?>guide/index.html"><img
|
||||
src="<?cs var:toroot ?>assets/images/android-partner-logo.png" alt="Android Platform Development Kit" /></a>
|
||||
|
||||
</div>
|
||||
<div id="headerRight">
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
<?cs /if ?>
|
||||
<?cs /def ?>
|
||||
|
||||
<?cs call:class_table("Annotations", package.annotations) ?>
|
||||
<?cs call:class_table("Interfaces", package.interfaces) ?>
|
||||
<?cs call:class_table("Classes", package.classes) ?>
|
||||
<?cs call:class_table("Enums", package.enums) ?>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue