aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/Makefile16
-rw-r--r--core/apidiff.mk177
-rw-r--r--core/build_id.mk2
-rw-r--r--core/clear_vars.mk3
-rw-r--r--core/config.mk1
-rw-r--r--core/dex_preopt_libart.mk2
-rw-r--r--core/package_internal.mk7
-rw-r--r--core/static_java_library.mk5
-rw-r--r--core/tasks/apidiff.mk21
-rw-r--r--core/version_defaults.mk12
-rw-r--r--target/board/generic_arm64_a/BoardConfig.mk4
-rw-r--r--target/board/generic_arm64_ab/BoardConfig.mk4
-rw-r--r--target/product/base.mk1
-rw-r--r--target/product/core.mk1
-rw-r--r--target/product/embedded.mk2
-rw-r--r--target/product/emulator.mk1
-rw-r--r--target/product/full_base.mk2
-rw-r--r--target/product/locales_full.mk3
-rwxr-xr-xtools/releasetools/add_img_to_target_files.py14
-rwxr-xr-xtools/releasetools/build_image.py6
20 files changed, 263 insertions, 21 deletions
diff --git a/core/Makefile b/core/Makefile
index 3aa8dba450..18c3e0100f 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -580,6 +580,8 @@ ramdisk-nodeps: $(MKBOOTFS) | $(MINIGZIP)
@echo "make $@: ignoring dependencies"
$(hide) $(MKBOOTFS) -d $(TARGET_OUT) $(TARGET_ROOT_OUT) | $(MINIGZIP) > $(INSTALLED_RAMDISK_TARGET)
+INSTALLED_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img
+
ifneq ($(strip $(TARGET_NO_KERNEL)),true)
# -----------------------------------------------------------------
@@ -618,8 +620,6 @@ INTERNAL_MKBOOTIMG_VERSION_ARGS := \
--os_version $(PLATFORM_VERSION) \
--os_patch_level $(PLATFORM_SECURITY_PATCH)
-INSTALLED_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img
-
# BOARD_USES_RECOVERY_AS_BOOT = true must have BOARD_BUILD_SYSTEM_ROOT_IMAGE = true.
ifeq ($(BOARD_USES_RECOVERY_AS_BOOT),true)
ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
@@ -702,6 +702,13 @@ endif # TARGET_BOOTIMAGE_USE_EXT2
endif # BOARD_USES_RECOVERY_AS_BOOT
else # TARGET_NO_KERNEL
+ifdef BOARD_PREBUILT_BOOTIMAGE
+ifneq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
+# Remove when b/63676296 is resolved.
+$(error Prebuilt bootimage is only supported for AB targets)
+endif
+$(eval $(call copy-one-file,$(BOARD_PREBUILT_BOOTIMAGE),$(INSTALLED_BOOTIMAGE_TARGET)))
+else
INTERNAL_KERNEL_CMDLINE := $(strip $(BOARD_KERNEL_CMDLINE))
# HACK: The top-level targets depend on the bootimage. Not all targets
# can produce a bootimage, though, and emulator targets need the ramdisk
@@ -710,6 +717,7 @@ INTERNAL_KERNEL_CMDLINE := $(strip $(BOARD_KERNEL_CMDLINE))
# kernel-less inputs.
INSTALLED_BOOTIMAGE_TARGET := $(INSTALLED_RAMDISK_TARGET)
endif
+endif
# -----------------------------------------------------------------
# NOTICE files
@@ -2509,6 +2517,10 @@ ifdef BOARD_PREBUILT_VENDORIMAGE
$(hide) mkdir -p $(zip_root)/IMAGES
$(hide) cp $(INSTALLED_VENDORIMAGE_TARGET) $(zip_root)/IMAGES/
endif
+ifdef BOARD_PREBUILT_BOOTIMAGE
+ $(hide) mkdir -p $(zip_root)/IMAGES
+ $(hide) cp $(INSTALLED_BOOTIMAGE_TARGET) $(zip_root)/IMAGES/
+endif
ifdef BOARD_PREBUILT_DTBOIMAGE
$(hide) mkdir -p $(zip_root)/PREBUILT_IMAGES
$(hide) cp $(INSTALLED_DTBOIMAGE_TARGET) $(zip_root)/PREBUILT_IMAGES/
diff --git a/core/apidiff.mk b/core/apidiff.mk
new file mode 100644
index 0000000000..1a7467d952
--- /dev/null
+++ b/core/apidiff.mk
@@ -0,0 +1,177 @@
+#
+# Copyright (C) 2017 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.
+#
+
+##
+##
+## Common to both jdiff and javadoc
+##
+##
+
+LOCAL_IS_HOST_MODULE := $(call true-or-empty,$(LOCAL_IS_HOST_MODULE))
+ifeq ($(LOCAL_IS_HOST_MODULE),true)
+my_prefix := HOST_
+LOCAL_HOST_PREFIX :=
+else
+my_prefix := TARGET_
+endif
+
+LOCAL_MODULE_CLASS := $(strip $(LOCAL_MODULE_CLASS))
+ifndef LOCAL_MODULE_CLASS
+$(error $(LOCAL_PATH): LOCAL_MODULE_CLASS not defined)
+endif
+
+full_src_files := $(patsubst %,$(LOCAL_PATH)/%,$(LOCAL_SRC_FILES))
+out_dir := $(OUT_DOCS)/$(LOCAL_MODULE)/api_diff/current
+full_target := $(call doc-timestamp-for,$(LOCAL_MODULE)-diff)
+
+ifeq ($(LOCAL_IS_HOST_MODULE),true)
+$(full_target): PRIVATE_BOOTCLASSPATH :=
+full_java_libs := $(addprefix $(HOST_OUT_JAVA_LIBRARIES)/,\
+ $(addsuffix $(COMMON_JAVA_PACKAGE_SUFFIX),$(LOCAL_JAVA_LIBRARIES)))
+full_java_lib_deps := $(full_java_libs)
+
+else
+
+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)
+ $(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 ifeq ($(LOCAL_SDK_VERSION)$(TARGET_BUILD_APPS),test_current)
+ LOCAL_JAVA_LIBRARIES := android_test_stubs_current $(LOCAL_JAVA_LIBRARIES)
+ $(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, android_test_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-oj core-libart ext framework $(LOCAL_JAVA_LIBRARIES)
+ $(full_target): PRIVATE_BOOTCLASSPATH := $(call java-lib-files, core-oj):$(call java-lib-files, core-libart)
+endif # LOCAL_SDK_VERSION
+LOCAL_JAVA_LIBRARIES := $(sort $(LOCAL_JAVA_LIBRARIES))
+
+full_java_libs := $(call java-lib-files,$(LOCAL_JAVA_LIBRARIES)) $(LOCAL_CLASSPATH)
+full_java_lib_deps := $(call java-lib-deps,$(LOCAL_JAVA_LIBRARIES)) $(LOCAL_CLASSPATH)
+endif # !LOCAL_IS_HOST_MODULE
+
+$(full_target): PRIVATE_CLASSPATH := $(subst $(space),:,$(full_java_libs))
+$(full_target): PRIVATE_DOCLAVA_CLASSPATH := $(HOST_OUT_JAVA_LIBRARIES)/jsilver$(COMMON_JAVA_PACKAGE_SUFFIX):$(HOST_OUT_JAVA_LIBRARIES)/doclava$(COMMON_JAVA_PACKAGE_SUFFIX)
+
+intermediates.COMMON := $(call local-intermediates-dir,COMMON)
+
+$(full_target): PRIVATE_SOURCE_PATH := $(call normalize-path-list,$(LOCAL_DROIDDOC_SOURCE_PATH))
+$(full_target): PRIVATE_JAVA_FILES := $(filter %.java,$(full_src_files))
+$(full_target): PRIVATE_JAVA_FILES += $(addprefix $($(my_prefix)OUT_COMMON_INTERMEDIATES)/, $(filter %.java,$(LOCAL_INTERMEDIATE_SOURCES)))
+$(full_target): PRIVATE_SOURCE_INTERMEDIATES_DIR := $(intermediates.COMMON)/src
+$(full_target): PRIVATE_SRC_LIST_FILE := $(intermediates.COMMON)/droiddoc-src-list
+
+ifneq ($(strip $(LOCAL_ADDITIONAL_JAVA_DIR)),)
+$(full_target): PRIVATE_ADDITIONAL_JAVA_DIR := $(LOCAL_ADDITIONAL_JAVA_DIR)
+endif
+
+# Lists the input files for the doc build into a text file
+# suitable for the @ syntax of javadoc.
+# $(1): the file to create
+# $(2): files to include
+# $(3): list of directories to search for java files in
+define prepare-doc-source-list
+$(hide) mkdir -p $(dir $(1))
+$(call dump-words-to-file, $(2), $(1))
+$(hide) for d in $(3) ; do find $$d -name '*.java' -and -not -name '.*' >> $(1) 2> /dev/null ; done ; true
+endef
+
+##
+##
+## jdiff only
+##
+##
+
+jdiff := \
+ $(HOST_JDK_TOOLS_JAR) \
+ $(HOST_OUT_JAVA_LIBRARIES)/jdiff$(COMMON_JAVA_PACKAGE_SUFFIX)
+
+doclava := \
+ $(HOST_JDK_TOOLS_JAR) \
+ $(HOST_OUT_JAVA_LIBRARIES)/doclava$(COMMON_JAVA_PACKAGE_SUFFIX)
+
+$(full_target): PRIVATE_NEWAPI := $(LOCAL_APIDIFF_NEWAPI)
+$(full_target): PRIVATE_OLDAPI := $(LOCAL_APIDIFF_OLDAPI)
+$(full_target): PRIVATE_OUT_DIR := $(out_dir)
+$(full_target): PRIVATE_OUT_NEWAPI := $(out_dir)/current.xml
+$(full_target): PRIVATE_OUT_OLDAPI := $(out_dir)/$(notdir $(basename $(LOCAL_APIDIFF_OLDAPI))).xml
+$(full_target): PRIVATE_DOCLETPATH := $(HOST_OUT_JAVA_LIBRARIES)/jdiff$(COMMON_JAVA_PACKAGE_SUFFIX)
+$(full_target): \
+ $(full_src_files) \
+ $(full_java_lib_deps) \
+ $(jdiff) \
+ $(doclava) \
+ $(LOCAL_MODULE)-docs \
+ $(LOCAL_ADDITIONAL_DEPENDENCIES)
+ @echo Generating API diff: $(PRIVATE_OUT_DIR)
+ @echo Old API: $(PRIVATE_OLDAPI)
+ @echo New API: $(PRIVATE_NEWAPI)
+ @echo Old XML: $(PRIVATE_OUT_OLDAPI)
+ @echo New XML: $(PRIVATE_OUT_NEWAPI)
+ $(hide) mkdir -p $(dir $@)
+ @echo Converting API files to XML...
+ $(hide) mkdir -p $(PRIVATE_OUT_DIR)
+ $(hide) ( \
+ $(JAVA) \
+ $(addprefix -classpath ,$(PRIVATE_CLASSPATH):$(PRIVATE_DOCLAVA_CLASSPATH):$(PRIVATE_BOOTCLASSPATH):$(HOST_JDK_TOOLS_JAR)) \
+ com.google.doclava.apicheck.ApiCheck \
+ -convert2xml \
+ $(basename $(PRIVATE_NEWAPI)).txt \
+ $(basename $(PRIVATE_OUT_NEWAPI)).xml \
+ ) || (rm -rf $(PRIVATE_OUT_DIR) $(PRIVATE_SRC_LIST_FILE); exit 45)
+ $(hide) ( \
+ $(JAVA) \
+ $(addprefix -classpath ,$(PRIVATE_CLASSPATH):$(PRIVATE_DOCLAVA_CLASSPATH):$(PRIVATE_BOOTCLASSPATH):$(HOST_JDK_TOOLS_JAR)) \
+ com.google.doclava.apicheck.ApiCheck \
+ -convert2xml \
+ $(basename $(PRIVATE_OLDAPI)).txt \
+ $(basename $(PRIVATE_OUT_OLDAPI)).xml \
+ ) || (rm -rf $(PRIVATE_OUT_DIR) $(PRIVATE_SRC_LIST_FILE); exit 45)
+ @echo Running JDiff...
+ $(call prepare-doc-source-list,$(PRIVATE_SRC_LIST_FILE),$(PRIVATE_JAVA_FILES), \
+ $(PRIVATE_SOURCE_INTERMEDIATES_DIR) $(PRIVATE_ADDITIONAL_JAVA_DIR))
+ $(hide) ( \
+ $(JAVADOC) \
+ -encoding UTF-8 \
+ \@$(PRIVATE_SRC_LIST_FILE) \
+ -J-Xmx1600m \
+ -XDignore.symbol.file \
+ -quiet \
+ -doclet jdiff.JDiff \
+ -docletpath $(PRIVATE_DOCLETPATH) \
+ $(addprefix -bootclasspath ,$(PRIVATE_BOOTCLASSPATH)) \
+ $(addprefix -classpath ,$(PRIVATE_CLASSPATH)) \
+ -sourcepath $(PRIVATE_SOURCE_PATH)$(addprefix :,$(PRIVATE_CLASSPATH)) \
+ -d $(PRIVATE_OUT_DIR) \
+ -newapi $(notdir $(basename $(PRIVATE_OUT_NEWAPI))) \
+ -newapidir $(dir $(PRIVATE_OUT_NEWAPI)) \
+ -oldapi $(notdir $(basename $(PRIVATE_OUT_OLDAPI))) \
+ -oldapidir $(dir $(PRIVATE_OUT_OLDAPI)) \
+ -javadocnew ../../../reference/ \
+ && touch -f $@ \
+ ) || (rm -rf $(PRIVATE_OUT_DIR) $(PRIVATE_SRC_LIST_FILE); exit 45)
+
+ALL_DOCS += $(full_target)
+
+.PHONY: $(LOCAL_MODULE)-diff
+$(LOCAL_MODULE)-diff : $(full_target)
diff --git a/core/build_id.mk b/core/build_id.mk
index ff4d013fb9..0e8e2cf4bf 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -18,4 +18,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=OC-MR1
+export BUILD_ID=MASTER
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index bdac5dc410..a03eef02a5 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -6,6 +6,7 @@
LOCAL_32_BIT_ONLY:=
LOCAL_AAPT_FLAGS:=
LOCAL_AAPT_INCLUDE_ALL_RESOURCES:=
+LOCAL_AAPT_NAMESPACES:=
LOCAL_ADDITIONAL_CERTIFICATES:=
LOCAL_ADDITIONAL_DEPENDENCIES:=
LOCAL_ADDITIONAL_HTML_DIR:=
@@ -14,6 +15,8 @@ LOCAL_AIDL_INCLUDES:=
LOCAL_ALLOW_UNDEFINED_SYMBOLS:=
LOCAL_ANNOTATION_PROCESSORS:=
LOCAL_ANNOTATION_PROCESSOR_CLASSES:=
+LOCAL_APIDIFF_NEWAPI:=
+LOCAL_APIDIFF_OLDAPI:=
LOCAL_APK_LIBRARIES:=
LOCAL_ARM_MODE:=
LOCAL_ASFLAGS:=
diff --git a/core/config.mk b/core/config.mk
index b853d365c1..d23530dc71 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -114,6 +114,7 @@ BUILD_JAVA_LIBRARY:= $(BUILD_SYSTEM)/java_library.mk
BUILD_STATIC_JAVA_LIBRARY:= $(BUILD_SYSTEM)/static_java_library.mk
BUILD_HOST_JAVA_LIBRARY:= $(BUILD_SYSTEM)/host_java_library.mk
BUILD_DROIDDOC:= $(BUILD_SYSTEM)/droiddoc.mk
+BUILD_APIDIFF:= $(BUILD_SYSTEM)/apidiff.mk
BUILD_COPY_HEADERS := $(BUILD_SYSTEM)/copy_headers.mk
BUILD_NATIVE_TEST := $(BUILD_SYSTEM)/native_test.mk
BUILD_NATIVE_BENCHMARK := $(BUILD_SYSTEM)/native_benchmark.mk
diff --git a/core/dex_preopt_libart.mk b/core/dex_preopt_libart.mk
index 96160367be..40d34f1318 100644
--- a/core/dex_preopt_libart.mk
+++ b/core/dex_preopt_libart.mk
@@ -96,7 +96,7 @@ LIBART_TARGET_BOOT_ART_EXTRA_FILES += boot.oat boot.vdex
my_use_profile_for_boot_image := $(PRODUCT_USE_PROFILE_FOR_BOOT_IMAGE)
ifeq (,$(my_use_profile_for_boot_image))
# If not set, use the default.
-my_use_profile_for_boot_image := false
+my_use_profile_for_boot_image := true
endif
ifeq (true,$(my_use_profile_for_boot_image))
diff --git a/core/package_internal.mk b/core/package_internal.mk
index 93c15b630d..5f6a64074c 100644
--- a/core/package_internal.mk
+++ b/core/package_internal.mk
@@ -422,8 +422,13 @@ endif # renderscript_target_api < 21
endif # renderscript_target_api is set
my_asset_dirs := $(LOCAL_ASSET_DIR)
my_full_asset_paths := $(all_assets)
+
# Add AAPT2 link specific flags.
-$(my_res_package): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) --no-static-lib-packages
+$(my_res_package): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS)
+ifndef LOCAL_AAPT_NAMESPACES
+ $(my_res_package): PRIVATE_AAPT_FLAGS += --no-static-lib-packages
+endif
+
include $(BUILD_SYSTEM)/aapt2.mk
else # LOCAL_USE_AAPT2
diff --git a/core/static_java_library.mk b/core/static_java_library.mk
index c39c40a71b..b959728ce8 100644
--- a/core/static_java_library.mk
+++ b/core/static_java_library.mk
@@ -128,7 +128,10 @@ endif
# add --non-constant-id to prevent inlining constants.
# AAR needs text symbol file R.txt.
ifdef LOCAL_USE_AAPT2
-$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) --static-lib --no-static-lib-packages
+$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) --static-lib
+ifndef LOCAL_AAPT_NAMESPACES
+ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_FLAGS += --no-static-lib-packages
+endif
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_PRODUCT_AAPT_CONFIG :=
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_PRODUCT_AAPT_PREF_CONFIG :=
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_AAPT_CHARACTERISTICS :=
diff --git a/core/tasks/apidiff.mk b/core/tasks/apidiff.mk
new file mode 100644
index 0000000000..4eb59afbb9
--- /dev/null
+++ b/core/tasks/apidiff.mk
@@ -0,0 +1,21 @@
+# Copyright (C) 2017 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 for building API diffs.
+#
+
+.PHONY: api-diff
+
+api-diff: offline-sdk-referenceonly-diff
diff --git a/core/version_defaults.mk b/core/version_defaults.mk
index 22eea8de01..27632e85c4 100644
--- a/core/version_defaults.mk
+++ b/core/version_defaults.mk
@@ -38,9 +38,9 @@ ifdef INTERNAL_BUILD_ID_MAKEFILE
include $(INTERNAL_BUILD_ID_MAKEFILE)
endif
-DEFAULT_PLATFORM_VERSION := OPM1
-MIN_PLATFORM_VERSION := OPM1
-MAX_PLATFORM_VERSION := OPM1
+DEFAULT_PLATFORM_VERSION := PPR1
+MIN_PLATFORM_VERSION := PPR1
+MAX_PLATFORM_VERSION := PPR1
ALLOWED_VERSIONS := $(call allowed-platform-versions,\
$(MIN_PLATFORM_VERSION),\
@@ -74,11 +74,11 @@ endif
# please add that PLATFORM_VERSION as well as clean up obsolete PLATFORM_VERSION's
# in the following text file:
# cts/tests/tests/os/assets/platform_versions.txt
-PLATFORM_VERSION.OPM1 := 8.1.0
+PLATFORM_VERSION.PPR1 := P
# These are the current development codenames, if the build is not a final
# release build. If this is a final release build, it is simply "REL".
-PLATFORM_VERSION_CODENAME.OPM1 := REL
+PLATFORM_VERSION_CODENAME.PPR1 := P
ifndef PLATFORM_VERSION
PLATFORM_VERSION := $(PLATFORM_VERSION.$(TARGET_PLATFORM_VERSION))
@@ -175,7 +175,7 @@ else
# assuming the device can only support APIs as of the previous official
# public release.
# This value will always be 0 for release builds.
- PLATFORM_PREVIEW_SDK_VERSION := 0
+ PLATFORM_PREVIEW_SDK_VERSION := 1
endif
endif
diff --git a/target/board/generic_arm64_a/BoardConfig.mk b/target/board/generic_arm64_a/BoardConfig.mk
index 8f4043f162..34a8ac0012 100644
--- a/target/board/generic_arm64_a/BoardConfig.mk
+++ b/target/board/generic_arm64_a/BoardConfig.mk
@@ -23,7 +23,7 @@ TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := generic
TARGET_2ND_ARCH := arm
-TARGET_2ND_ARCH_VARIANT := armv7-a-neon
+TARGET_2ND_ARCH_VARIANT := armv8-a
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
-TARGET_2ND_CPU_VARIANT := cortex-a15
+TARGET_2ND_CPU_VARIANT := generic
diff --git a/target/board/generic_arm64_ab/BoardConfig.mk b/target/board/generic_arm64_ab/BoardConfig.mk
index e0d7372b8d..00afee615a 100644
--- a/target/board/generic_arm64_ab/BoardConfig.mk
+++ b/target/board/generic_arm64_ab/BoardConfig.mk
@@ -23,10 +23,10 @@ TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := generic
TARGET_2ND_ARCH := arm
-TARGET_2ND_ARCH_VARIANT := armv7-a-neon
+TARGET_2ND_ARCH_VARIANT := armv8-a
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
-TARGET_2ND_CPU_VARIANT := cortex-a15
+TARGET_2ND_CPU_VARIANT := generic
# Enable A/B update
TARGET_NO_RECOVERY := true
diff --git a/target/product/base.mk b/target/product/base.mk
index 252929f966..1a35bad2c5 100644
--- a/target/product/base.mk
+++ b/target/product/base.mk
@@ -44,6 +44,7 @@ PRODUCT_PACKAGES += \
ime \
incidentd \
incident \
+ incident_helper \
incident_report \
input \
javax.obex \
diff --git a/target/product/core.mk b/target/product/core.mk
index a2b0f1c551..3771b7ea9c 100644
--- a/target/product/core.mk
+++ b/target/product/core.mk
@@ -53,6 +53,7 @@ PRODUCT_PACKAGES += \
ProxyHandler \
QuickSearchBox \
Settings \
+ SettingsIntelligence \
SharedStorageBackup \
StorageManager \
Telecom \
diff --git a/target/product/embedded.mk b/target/product/embedded.mk
index 0a56c990c8..17d4a20132 100644
--- a/target/product/embedded.mk
+++ b/target/product/embedded.mk
@@ -20,7 +20,7 @@
PRODUCT_PACKAGES += \
adb \
adbd \
- android.hardware.configstore@1.0-service \
+ android.hardware.configstore@1.1-service \
android.hidl.allocator@1.0-service \
android.hidl.memory@1.0-impl \
atrace \
diff --git a/target/product/emulator.mk b/target/product/emulator.mk
index 0e1e581cdd..00b353385b 100644
--- a/target/product/emulator.mk
+++ b/target/product/emulator.mk
@@ -129,6 +129,7 @@ PRODUCT_PACKAGES += \
libcompiler_rt.vndk-sp\
libbacktrace.vndk-sp\
libunwind.vndk-sp\
+ libunwindstack.vndk-sp\
liblzma.vndk-sp\
libz.vndk-sp\
diff --git a/target/product/full_base.mk b/target/product/full_base.mk
index 65bdf0f1b4..f8e9b2ac6e 100644
--- a/target/product/full_base.mk
+++ b/target/product/full_base.mk
@@ -52,7 +52,7 @@ $(call inherit-product-if-exists, frameworks/base/data/sounds/AllAudio.mk)
$(call inherit-product-if-exists, external/svox/pico/lang/all_pico_languages.mk)
# Get a list of languages.
-$(call inherit-product, $(SRC_TARGET_DIR)/product/locales_full.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)
# Get everything else from the parent package
$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_no_telephony.mk)
diff --git a/target/product/locales_full.mk b/target/product/locales_full.mk
deleted file mode 100644
index 3a90d2b885..0000000000
--- a/target/product/locales_full.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-PRODUCT_LOCALES := en_US cs_CZ da_DK de_AT de_CH de_DE de_LI el_GR en_AU en_CA en_GB en_NZ en_SG eo_EU es_ES fr_CA fr_CH fr_BE fr_FR it_CH it_IT ja_JP ko_KR nb_NO nl_BE nl_NL pl_PL pt_PT ru_RU sv_SE tr_TR zh_CN zh_HK zh_TW am_ET hi_IN
-
-$(call inherit-product, build/target/product/languages_full.mk)
diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py
index 52d3918926..02f2000a07 100755
--- a/tools/releasetools/add_img_to_target_files.py
+++ b/tools/releasetools/add_img_to_target_files.py
@@ -58,6 +58,7 @@ import shlex
import shutil
import subprocess
import tempfile
+import uuid
import zipfile
import build_image
@@ -257,6 +258,19 @@ def CreateImage(input_dir, info_dict, what, output_file, block_list=None):
if block_list:
image_props["block_list"] = block_list.name
+ # Use repeatable ext4 FS UUID and hash_seed UUID (based on partition name and
+ # build fingerprint).
+ uuid_seed = what + "-"
+ if "build.prop" in info_dict:
+ build_prop = info_dict["build.prop"]
+ if "ro.build.fingerprint" in build_prop:
+ uuid_seed += build_prop["ro.build.fingerprint"]
+ elif "ro.build.thumbprint" in build_prop:
+ uuid_seed += build_prop["ro.build.thumbprint"]
+ image_props["uuid"] = str(uuid.uuid5(uuid.NAMESPACE_URL, uuid_seed))
+ hash_seed = "hash_seed-" + uuid_seed
+ image_props["hash_seed"] = str(uuid.uuid5(uuid.NAMESPACE_URL, hash_seed))
+
succ = build_image.BuildImage(os.path.join(temp_dir, what),
image_props, output_file.name)
assert succ, "build " + what + ".img image failed"
diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py
index d2c9f59700..c50f605b61 100755
--- a/tools/releasetools/build_image.py
+++ b/tools/releasetools/build_image.py
@@ -475,6 +475,12 @@ def BuildImage(in_dir, prop_dict, out_file, target_out=None):
build_command.extend(["-e", prop_dict["flash_erase_block_size"]])
if "flash_logical_block_size" in prop_dict:
build_command.extend(["-o", prop_dict["flash_logical_block_size"]])
+ # Specify UUID and hash_seed if using mke2fs.
+ if prop_dict["ext_mkuserimg"] == "mkuserimg_mke2fs.sh":
+ if "uuid" in prop_dict:
+ build_command.extend(["-U", prop_dict["uuid"]])
+ if "hash_seed" in prop_dict:
+ build_command.extend(["-S", prop_dict["hash_seed"]])
if "selinux_fc" in prop_dict:
build_command.append(prop_dict["selinux_fc"])
elif fs_type.startswith("squash"):