Merge SQ1D.211205.017.

Merged-In: I68825bf96c8b94dc63ebc096c57b9f7c680be090
Change-Id: I686001cbb0fe446fd3389d3c267d64fd9763bd3d
diff --git a/AndroidProducts.mk b/AndroidProducts.mk
index 24a2d1a..f2a4d78 100644
--- a/AndroidProducts.mk
+++ b/AndroidProducts.mk
@@ -16,10 +16,12 @@
 
 PRODUCT_MAKEFILES := \
     $(LOCAL_DIR)/aosp_oriole.mk \
+    $(LOCAL_DIR)/aosp_oriole_hwasan.mk \
     $(LOCAL_DIR)/aosp_oriole_pkvm.mk \
     $(LOCAL_DIR)/aosp_oriole_64.mk \
     $(LOCAL_DIR)/factory_oriole.mk \
     $(LOCAL_DIR)/aosp_raven.mk \
+    $(LOCAL_DIR)/aosp_raven_hwasan.mk \
     $(LOCAL_DIR)/aosp_raven_pkvm.mk \
     $(LOCAL_DIR)/aosp_raven_64.mk \
     $(LOCAL_DIR)/factory_raven.mk \
diff --git a/aosp_oriole_hwasan.mk b/aosp_oriole_hwasan.mk
new file mode 100644
index 0000000..babc6a2
--- /dev/null
+++ b/aosp_oriole_hwasan.mk
@@ -0,0 +1,23 @@
+#
+# Copyright 2021 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, device/google/raviole/aosp_oriole.mk)
+PRODUCT_NAME := aosp_oriole_hwasan
+
+# Add "hwaddress" as a global sanitizer if it's missing.
+ifeq ($(filter hwaddress,$(SANITIZE_TARGET)),)
+  SANITIZE_TARGET := $(strip $(SANITIZE_TARGET) hwaddress)
+endif
diff --git a/aosp_raven_hwasan.mk b/aosp_raven_hwasan.mk
new file mode 100644
index 0000000..5b784a1
--- /dev/null
+++ b/aosp_raven_hwasan.mk
@@ -0,0 +1,23 @@
+#
+# Copyright 2021 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, device/google/raviole/aosp_raven.mk)
+PRODUCT_NAME := aosp_raven_hwasan
+
+# Add "hwaddress" as a global sanitizer if it's missing.
+ifeq ($(filter hwaddress,$(SANITIZE_TARGET)),)
+  SANITIZE_TARGET := $(strip $(SANITIZE_TARGET) hwaddress)
+endif
diff --git a/audio/oriole/audio-tables.mk b/audio/oriole/audio-tables.mk
index 6c3fc3a..7b41458 100644
--- a/audio/oriole/audio-tables.mk
+++ b/audio/oriole/audio-tables.mk
@@ -37,11 +37,7 @@
 SPK_FIRMWARE_PATH := $(AUDIO_TABLE_FOLDER)/cs35l41/fw
 SPK_FIRMWARE_FULL_PATH := device/google/raviole/audio/$(SPK_FIRMWARE_PATH)
 
-SPK_FIRMWAR_FILES := $(wildcard  $(SPK_FIRMWARE_FULL_PATH)/*)
-
-PRODUCT_COPY_FILES += $(foreach spk_firmware, \
-    $(SPK_FIRMWAR_FILES), \
-    $(spk_firmware):$(TARGET_COPY_OUT_VENDOR)/firmware/$(notdir $(spk_firmware)))
+PRODUCT_COPY_FILES += $(call copy-files,$(wildcard  $(SPK_FIRMWARE_FULL_PATH)/*),$(TARGET_COPY_OUT_VENDOR)/firmware)
 
 # Audio tuning
 PRODUCT_COPY_FILES += \
diff --git a/audio/raven/audio-tables.mk b/audio/raven/audio-tables.mk
index cc64f06..81c7f04 100644
--- a/audio/raven/audio-tables.mk
+++ b/audio/raven/audio-tables.mk
@@ -37,11 +37,7 @@
 SPK_FIRMWARE_PATH := $(AUDIO_TABLE_FOLDER)/cs35l41/fw
 SPK_FIRMWARE_FULL_PATH := device/google/raviole/audio/$(SPK_FIRMWARE_PATH)
 
-SPK_FIRMWAR_FILES := $(wildcard  $(SPK_FIRMWARE_FULL_PATH)/*)
-
-PRODUCT_COPY_FILES += $(foreach spk_firmware, \
-    $(SPK_FIRMWAR_FILES), \
-    $(spk_firmware):$(TARGET_COPY_OUT_VENDOR)/firmware/$(notdir $(spk_firmware)))
+PRODUCT_COPY_FILES += $(call copy-files,$(wildcard  $(SPK_FIRMWARE_FULL_PATH)/*),$(TARGET_COPY_OUT_VENDOR)/firmware)
 
 # Audio tuning
 PRODUCT_COPY_FILES += \
diff --git a/audio/slider/audio-tables.mk b/audio/slider/audio-tables.mk
index 5bab01f..691d5c9 100644
--- a/audio/slider/audio-tables.mk
+++ b/audio/slider/audio-tables.mk
@@ -36,11 +36,7 @@
 SPK_FIRMWARE_PATH := $(AUDIO_TABLE_FOLDER)/cs35l41/fw
 SPK_FIRMWARE_FULL_PATH := device/google/raviole/audio/$(SPK_FIRMWARE_PATH)
 
-SPK_FIRMWAR_FILES := $(wildcard  $(SPK_FIRMWARE_FULL_PATH)/*)
-
-PRODUCT_COPY_FILES += $(foreach spk_firmware, \
-    $(SPK_FIRMWAR_FILES), \
-    $(spk_firmware):$(TARGET_COPY_OUT_VENDOR)/firmware/$(notdir $(spk_firmware)))
+PRODUCT_COPY_FILES += $(call copy-files,$(wildcard  $(SPK_FIRMWARE_FULL_PATH)/*),$(TARGET_COPY_OUT_VENDOR)/firmware)
 
 # Audio tuning
 PRODUCT_COPY_FILES += \
diff --git a/audio/whitefin/audio-tables.mk b/audio/whitefin/audio-tables.mk
index 4b13502..b48b44e 100644
--- a/audio/whitefin/audio-tables.mk
+++ b/audio/whitefin/audio-tables.mk
@@ -36,11 +36,7 @@
 SPK_FIRMWARE_PATH := $(AUDIO_TABLE_FOLDER)/cs35l41/fw
 SPK_FIRMWARE_FULL_PATH := device/google/raviole/audio/$(SPK_FIRMWARE_PATH)
 
-SPK_FIRMWAR_FILES := $(wildcard  $(SPK_FIRMWARE_FULL_PATH)/*)
-
-PRODUCT_COPY_FILES += $(foreach spk_firmware, \
-    $(SPK_FIRMWAR_FILES), \
-    $(spk_firmware):$(TARGET_COPY_OUT_VENDOR)/firmware/$(notdir $(spk_firmware)))
+PRODUCT_COPY_FILES += $(call copy-files,$(wildcard  $(SPK_FIRMWARE_FULL_PATH)/*),$(TARGET_COPY_OUT_VENDOR)/firmware)
 
 # Audio tuning
 PRODUCT_COPY_FILES += \