Update: audio tuning table am: 4bfaa9f2f3

Original change: https://googleplex-android-review.googlesource.com/c/device/google/raviole/+/16191708

Change-Id: Ief9126fed491ec9893761ad3a61563b4f368fadf
diff --git a/audio/oriole/audio-tables.mk b/audio/oriole/audio-tables.mk
index 6c3fc3a..52e4858 100644
--- a/audio/oriole/audio-tables.mk
+++ b/audio/oriole/audio-tables.mk
@@ -69,4 +69,10 @@
 # Mixer Path Configuration for Audio Speaker Calibration Tool crus_sp_cal
 PRODUCT_COPY_FILES += \
     device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/cs35l41/crus_sp_cal_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/crus_sp_cal_mixer_paths.xml
+
+# Waves ini/mps files for unit tests of halcontroller
+PRODUCT_COPY_FILES += \
+    device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/tuning/waves/tests/test_config.ini:$(TARGET_COPY_OUT_VENDOR)/etc/test_config.ini \
+    device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/tuning/waves/tests/test_preset.mps:$(TARGET_COPY_OUT_VENDOR)/etc/test_preset.mps
+
 endif
diff --git a/audio/oriole/tuning/waves/tests/test_config.ini b/audio/oriole/tuning/waves/tests/test_config.ini
new file mode 100644
index 0000000..ba12a8e
--- /dev/null
+++ b/audio/oriole/tuning/waves/tests/test_config.ini
@@ -0,0 +1,58 @@
+########################################################################################################
+# (Optional) The supported features list for platform vendors to query from.
+# Platform vendors should call maxxaudio_qdsp_is_feature_supported with a string to query from the list.
+# This config has no effect in the MaxxAudioQdspHalController. It's only meaningful for platform vendors.
+# Putting any value other than 1 would be equivalent to not supported.
+########################################################################################################
+[HAL_SUPPORTED_FEATURES]
+CUSTOM_ACTION_256=1
+
+########################################################################################################
+# This defined the options of supported sample rates.
+# This can be configured by Waves or platform vendor.
+########################################################################################################
+[HAL_SUPPORTED_SAMPLE_RATES]
+SR_COMMON   = 48000
+
+########################################################################################################
+# (Optional) The subtypes that applies to different angles(0, 90, 180, 270). Can be empty if not applicable.
+# This can be configured by Waves or platform vendor.
+########################################################################################################
+[HAL_ORIENTATION_SUBTYPES]
+OST_SPEAKER = 0:12,90:13,180:12,270:0|13
+
+########################################################################################################
+# This defines available preset configurations.
+# This should be configured by Waves only unless platform vendor is familiar with MPS structure.
+########################################################################################################
+[HAL_SUPPORTED_PRESETS]
+SPEAKER_MUSIC = OM:1,SM:2,OST:OST_SPEAKER
+SPEAKER_SAFE_MUSIC = OM:10,SM:2,OST:OST_SPEAKER
+SPEAKER_SAFE_CALL = OM:10,SM:2,OST:OST_SPEAKER
+HEADSET_MUSIC = OM:2,SM:2
+
+########################################################################################################
+# This defines available CONTROL configurations. Only define the CONTROL if you need it.
+# The numbers could vary from device to device.
+# This can be configured by Waves or platform vendor.
+########################################################################################################
+[HAL_SUPPORTED_CONTROLS]
+SPEAKER_INSTANCE = INSTANCE:1,DEV:0,SR:SR_COMMON,PRESET:SPEAKER_MUSIC|SPEAKER_SAFE_MUSIC|SPEAKER_SAFE_CALL
+A2DP_INSTANCE = INSTANCE:2,DEV:0,SR:SR_COMMON,PRESET:HEADSET_MUSIC
+USB_HEADPHONE_INSTANCE = INSTANCE:4,DEV:0,SR:SR_COMMON,PRESET:HEADSET_MUSIC
+
+[COEFS_CONVERTER_SETTING]
+AlgFxPath=/vendor/lib/libAlgFx_HiFi3z.so
+AlgFxPath64=/vendor/lib64/libAlgFx_HiFi3z.so
+# do not modify the following if not necessary
+#AudioFormatType=0
+#AudioFormatChannels=2
+#AudioFormatSampleRate=48000
+#AudioFormatBitsPerSample=32
+#AudioFormatSampleSize=4
+#AudioFormatIncrement=8
+
+[CUSTOM_ACTION_256]
+CASE_1=PRIORITY:0,NUMBERS:2:0|1,PRESET:SPEAKER_MUSIC
+CASE_2=PRIORITY:1,NUMBERS:1|2|4194304:2|3|4,PRESET:SPEAKER_SAFE_CALL
+CASE_3=PRIORITY:2,NUMBERS:1|4194304:0|1,PRESET:SPEAKER_SAFE_MUSIC
diff --git a/audio/oriole/tuning/waves/tests/test_preset.mps b/audio/oriole/tuning/waves/tests/test_preset.mps
new file mode 100644
index 0000000..bd08ee3
--- /dev/null
+++ b/audio/oriole/tuning/waves/tests/test_preset.mps
Binary files differ
diff --git a/audio/oriole/tuning/waves/waves_config.ini b/audio/oriole/tuning/waves/waves_config.ini
index 99b9604..ba12a8e 100644
--- a/audio/oriole/tuning/waves/waves_config.ini
+++ b/audio/oriole/tuning/waves/waves_config.ini
@@ -1,4 +1,13 @@
 ########################################################################################################
+# (Optional) The supported features list for platform vendors to query from.
+# Platform vendors should call maxxaudio_qdsp_is_feature_supported with a string to query from the list.
+# This config has no effect in the MaxxAudioQdspHalController. It's only meaningful for platform vendors.
+# Putting any value other than 1 would be equivalent to not supported.
+########################################################################################################
+[HAL_SUPPORTED_FEATURES]
+CUSTOM_ACTION_256=1
+
+########################################################################################################
 # This defined the options of supported sample rates.
 # This can be configured by Waves or platform vendor.
 ########################################################################################################
diff --git a/audio/raven/audio-tables.mk b/audio/raven/audio-tables.mk
index cc64f06..b79674e 100644
--- a/audio/raven/audio-tables.mk
+++ b/audio/raven/audio-tables.mk
@@ -69,4 +69,10 @@
 # Mixer Path Configuration for Audio Speaker Calibration Tool crus_sp_cal
 PRODUCT_COPY_FILES += \
     device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/cs35l41/crus_sp_cal_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/crus_sp_cal_mixer_paths.xml
+
+# Waves ini/mps files for unit tests of halcontroller
+PRODUCT_COPY_FILES += \
+    device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/tuning/waves/tests/test_config.ini:$(TARGET_COPY_OUT_VENDOR)/etc/test_config.ini \
+    device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/tuning/waves/tests/test_preset.mps:$(TARGET_COPY_OUT_VENDOR)/etc/test_preset.mps
+
 endif
diff --git a/audio/raven/tuning/waves/tests/test_config.ini b/audio/raven/tuning/waves/tests/test_config.ini
new file mode 100644
index 0000000..ba12a8e
--- /dev/null
+++ b/audio/raven/tuning/waves/tests/test_config.ini
@@ -0,0 +1,58 @@
+########################################################################################################
+# (Optional) The supported features list for platform vendors to query from.
+# Platform vendors should call maxxaudio_qdsp_is_feature_supported with a string to query from the list.
+# This config has no effect in the MaxxAudioQdspHalController. It's only meaningful for platform vendors.
+# Putting any value other than 1 would be equivalent to not supported.
+########################################################################################################
+[HAL_SUPPORTED_FEATURES]
+CUSTOM_ACTION_256=1
+
+########################################################################################################
+# This defined the options of supported sample rates.
+# This can be configured by Waves or platform vendor.
+########################################################################################################
+[HAL_SUPPORTED_SAMPLE_RATES]
+SR_COMMON   = 48000
+
+########################################################################################################
+# (Optional) The subtypes that applies to different angles(0, 90, 180, 270). Can be empty if not applicable.
+# This can be configured by Waves or platform vendor.
+########################################################################################################
+[HAL_ORIENTATION_SUBTYPES]
+OST_SPEAKER = 0:12,90:13,180:12,270:0|13
+
+########################################################################################################
+# This defines available preset configurations.
+# This should be configured by Waves only unless platform vendor is familiar with MPS structure.
+########################################################################################################
+[HAL_SUPPORTED_PRESETS]
+SPEAKER_MUSIC = OM:1,SM:2,OST:OST_SPEAKER
+SPEAKER_SAFE_MUSIC = OM:10,SM:2,OST:OST_SPEAKER
+SPEAKER_SAFE_CALL = OM:10,SM:2,OST:OST_SPEAKER
+HEADSET_MUSIC = OM:2,SM:2
+
+########################################################################################################
+# This defines available CONTROL configurations. Only define the CONTROL if you need it.
+# The numbers could vary from device to device.
+# This can be configured by Waves or platform vendor.
+########################################################################################################
+[HAL_SUPPORTED_CONTROLS]
+SPEAKER_INSTANCE = INSTANCE:1,DEV:0,SR:SR_COMMON,PRESET:SPEAKER_MUSIC|SPEAKER_SAFE_MUSIC|SPEAKER_SAFE_CALL
+A2DP_INSTANCE = INSTANCE:2,DEV:0,SR:SR_COMMON,PRESET:HEADSET_MUSIC
+USB_HEADPHONE_INSTANCE = INSTANCE:4,DEV:0,SR:SR_COMMON,PRESET:HEADSET_MUSIC
+
+[COEFS_CONVERTER_SETTING]
+AlgFxPath=/vendor/lib/libAlgFx_HiFi3z.so
+AlgFxPath64=/vendor/lib64/libAlgFx_HiFi3z.so
+# do not modify the following if not necessary
+#AudioFormatType=0
+#AudioFormatChannels=2
+#AudioFormatSampleRate=48000
+#AudioFormatBitsPerSample=32
+#AudioFormatSampleSize=4
+#AudioFormatIncrement=8
+
+[CUSTOM_ACTION_256]
+CASE_1=PRIORITY:0,NUMBERS:2:0|1,PRESET:SPEAKER_MUSIC
+CASE_2=PRIORITY:1,NUMBERS:1|2|4194304:2|3|4,PRESET:SPEAKER_SAFE_CALL
+CASE_3=PRIORITY:2,NUMBERS:1|4194304:0|1,PRESET:SPEAKER_SAFE_MUSIC
diff --git a/audio/raven/tuning/waves/tests/test_preset.mps b/audio/raven/tuning/waves/tests/test_preset.mps
new file mode 100644
index 0000000..bd08ee3
--- /dev/null
+++ b/audio/raven/tuning/waves/tests/test_preset.mps
Binary files differ
diff --git a/audio/raven/tuning/waves/waves_config.ini b/audio/raven/tuning/waves/waves_config.ini
index 99b9604..ba12a8e 100644
--- a/audio/raven/tuning/waves/waves_config.ini
+++ b/audio/raven/tuning/waves/waves_config.ini
@@ -1,4 +1,13 @@
 ########################################################################################################
+# (Optional) The supported features list for platform vendors to query from.
+# Platform vendors should call maxxaudio_qdsp_is_feature_supported with a string to query from the list.
+# This config has no effect in the MaxxAudioQdspHalController. It's only meaningful for platform vendors.
+# Putting any value other than 1 would be equivalent to not supported.
+########################################################################################################
+[HAL_SUPPORTED_FEATURES]
+CUSTOM_ACTION_256=1
+
+########################################################################################################
 # This defined the options of supported sample rates.
 # This can be configured by Waves or platform vendor.
 ########################################################################################################
diff --git a/audio/slider/audio-tables.mk b/audio/slider/audio-tables.mk
index 5bab01f..03783c2 100644
--- a/audio/slider/audio-tables.mk
+++ b/audio/slider/audio-tables.mk
@@ -63,4 +63,10 @@
 # Mixer Path Configuration for Audio Speaker Calibration Tool crus_sp_cal
 PRODUCT_COPY_FILES += \
     device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/cs35l41/crus_sp_cal_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/crus_sp_cal_mixer_paths.xml
+
+# Waves ini/mps files for unit tests of halcontroller
+PRODUCT_COPY_FILES += \
+    device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/tuning/waves/tests/test_config.ini:$(TARGET_COPY_OUT_VENDOR)/etc/test_config.ini \
+    device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/tuning/waves/tests/test_preset.mps:$(TARGET_COPY_OUT_VENDOR)/etc/test_preset.mps
+
 endif
diff --git a/audio/slider/tuning/waves/tests/test_config.ini b/audio/slider/tuning/waves/tests/test_config.ini
new file mode 100644
index 0000000..ba12a8e
--- /dev/null
+++ b/audio/slider/tuning/waves/tests/test_config.ini
@@ -0,0 +1,58 @@
+########################################################################################################
+# (Optional) The supported features list for platform vendors to query from.
+# Platform vendors should call maxxaudio_qdsp_is_feature_supported with a string to query from the list.
+# This config has no effect in the MaxxAudioQdspHalController. It's only meaningful for platform vendors.
+# Putting any value other than 1 would be equivalent to not supported.
+########################################################################################################
+[HAL_SUPPORTED_FEATURES]
+CUSTOM_ACTION_256=1
+
+########################################################################################################
+# This defined the options of supported sample rates.
+# This can be configured by Waves or platform vendor.
+########################################################################################################
+[HAL_SUPPORTED_SAMPLE_RATES]
+SR_COMMON   = 48000
+
+########################################################################################################
+# (Optional) The subtypes that applies to different angles(0, 90, 180, 270). Can be empty if not applicable.
+# This can be configured by Waves or platform vendor.
+########################################################################################################
+[HAL_ORIENTATION_SUBTYPES]
+OST_SPEAKER = 0:12,90:13,180:12,270:0|13
+
+########################################################################################################
+# This defines available preset configurations.
+# This should be configured by Waves only unless platform vendor is familiar with MPS structure.
+########################################################################################################
+[HAL_SUPPORTED_PRESETS]
+SPEAKER_MUSIC = OM:1,SM:2,OST:OST_SPEAKER
+SPEAKER_SAFE_MUSIC = OM:10,SM:2,OST:OST_SPEAKER
+SPEAKER_SAFE_CALL = OM:10,SM:2,OST:OST_SPEAKER
+HEADSET_MUSIC = OM:2,SM:2
+
+########################################################################################################
+# This defines available CONTROL configurations. Only define the CONTROL if you need it.
+# The numbers could vary from device to device.
+# This can be configured by Waves or platform vendor.
+########################################################################################################
+[HAL_SUPPORTED_CONTROLS]
+SPEAKER_INSTANCE = INSTANCE:1,DEV:0,SR:SR_COMMON,PRESET:SPEAKER_MUSIC|SPEAKER_SAFE_MUSIC|SPEAKER_SAFE_CALL
+A2DP_INSTANCE = INSTANCE:2,DEV:0,SR:SR_COMMON,PRESET:HEADSET_MUSIC
+USB_HEADPHONE_INSTANCE = INSTANCE:4,DEV:0,SR:SR_COMMON,PRESET:HEADSET_MUSIC
+
+[COEFS_CONVERTER_SETTING]
+AlgFxPath=/vendor/lib/libAlgFx_HiFi3z.so
+AlgFxPath64=/vendor/lib64/libAlgFx_HiFi3z.so
+# do not modify the following if not necessary
+#AudioFormatType=0
+#AudioFormatChannels=2
+#AudioFormatSampleRate=48000
+#AudioFormatBitsPerSample=32
+#AudioFormatSampleSize=4
+#AudioFormatIncrement=8
+
+[CUSTOM_ACTION_256]
+CASE_1=PRIORITY:0,NUMBERS:2:0|1,PRESET:SPEAKER_MUSIC
+CASE_2=PRIORITY:1,NUMBERS:1|2|4194304:2|3|4,PRESET:SPEAKER_SAFE_CALL
+CASE_3=PRIORITY:2,NUMBERS:1|4194304:0|1,PRESET:SPEAKER_SAFE_MUSIC
diff --git a/audio/slider/tuning/waves/tests/test_preset.mps b/audio/slider/tuning/waves/tests/test_preset.mps
new file mode 100644
index 0000000..bd08ee3
--- /dev/null
+++ b/audio/slider/tuning/waves/tests/test_preset.mps
Binary files differ
diff --git a/audio/slider/tuning/waves/waves_config.ini b/audio/slider/tuning/waves/waves_config.ini
index 99b9604..ba12a8e 100644
--- a/audio/slider/tuning/waves/waves_config.ini
+++ b/audio/slider/tuning/waves/waves_config.ini
@@ -1,4 +1,13 @@
 ########################################################################################################
+# (Optional) The supported features list for platform vendors to query from.
+# Platform vendors should call maxxaudio_qdsp_is_feature_supported with a string to query from the list.
+# This config has no effect in the MaxxAudioQdspHalController. It's only meaningful for platform vendors.
+# Putting any value other than 1 would be equivalent to not supported.
+########################################################################################################
+[HAL_SUPPORTED_FEATURES]
+CUSTOM_ACTION_256=1
+
+########################################################################################################
 # This defined the options of supported sample rates.
 # This can be configured by Waves or platform vendor.
 ########################################################################################################
diff --git a/audio/whitefin/audio-tables.mk b/audio/whitefin/audio-tables.mk
index 4b13502..b299e4b 100644
--- a/audio/whitefin/audio-tables.mk
+++ b/audio/whitefin/audio-tables.mk
@@ -63,4 +63,10 @@
 # Mixer Path Configuration for Audio Speaker Calibration Tool crus_sp_cal
 PRODUCT_COPY_FILES += \
     device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/cs35l41/crus_sp_cal_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/crus_sp_cal_mixer_paths.xml
+
+# Waves ini/mps files for unit tests of halcontroller
+PRODUCT_COPY_FILES += \
+    device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/tuning/waves/tests/test_config.ini:$(TARGET_COPY_OUT_VENDOR)/etc/test_config.ini \
+    device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/tuning/waves/tests/test_preset.mps:$(TARGET_COPY_OUT_VENDOR)/etc/test_preset.mps
+
 endif
diff --git a/audio/whitefin/tuning/waves/tests/test_config.ini b/audio/whitefin/tuning/waves/tests/test_config.ini
new file mode 100644
index 0000000..ba12a8e
--- /dev/null
+++ b/audio/whitefin/tuning/waves/tests/test_config.ini
@@ -0,0 +1,58 @@
+########################################################################################################
+# (Optional) The supported features list for platform vendors to query from.
+# Platform vendors should call maxxaudio_qdsp_is_feature_supported with a string to query from the list.
+# This config has no effect in the MaxxAudioQdspHalController. It's only meaningful for platform vendors.
+# Putting any value other than 1 would be equivalent to not supported.
+########################################################################################################
+[HAL_SUPPORTED_FEATURES]
+CUSTOM_ACTION_256=1
+
+########################################################################################################
+# This defined the options of supported sample rates.
+# This can be configured by Waves or platform vendor.
+########################################################################################################
+[HAL_SUPPORTED_SAMPLE_RATES]
+SR_COMMON   = 48000
+
+########################################################################################################
+# (Optional) The subtypes that applies to different angles(0, 90, 180, 270). Can be empty if not applicable.
+# This can be configured by Waves or platform vendor.
+########################################################################################################
+[HAL_ORIENTATION_SUBTYPES]
+OST_SPEAKER = 0:12,90:13,180:12,270:0|13
+
+########################################################################################################
+# This defines available preset configurations.
+# This should be configured by Waves only unless platform vendor is familiar with MPS structure.
+########################################################################################################
+[HAL_SUPPORTED_PRESETS]
+SPEAKER_MUSIC = OM:1,SM:2,OST:OST_SPEAKER
+SPEAKER_SAFE_MUSIC = OM:10,SM:2,OST:OST_SPEAKER
+SPEAKER_SAFE_CALL = OM:10,SM:2,OST:OST_SPEAKER
+HEADSET_MUSIC = OM:2,SM:2
+
+########################################################################################################
+# This defines available CONTROL configurations. Only define the CONTROL if you need it.
+# The numbers could vary from device to device.
+# This can be configured by Waves or platform vendor.
+########################################################################################################
+[HAL_SUPPORTED_CONTROLS]
+SPEAKER_INSTANCE = INSTANCE:1,DEV:0,SR:SR_COMMON,PRESET:SPEAKER_MUSIC|SPEAKER_SAFE_MUSIC|SPEAKER_SAFE_CALL
+A2DP_INSTANCE = INSTANCE:2,DEV:0,SR:SR_COMMON,PRESET:HEADSET_MUSIC
+USB_HEADPHONE_INSTANCE = INSTANCE:4,DEV:0,SR:SR_COMMON,PRESET:HEADSET_MUSIC
+
+[COEFS_CONVERTER_SETTING]
+AlgFxPath=/vendor/lib/libAlgFx_HiFi3z.so
+AlgFxPath64=/vendor/lib64/libAlgFx_HiFi3z.so
+# do not modify the following if not necessary
+#AudioFormatType=0
+#AudioFormatChannels=2
+#AudioFormatSampleRate=48000
+#AudioFormatBitsPerSample=32
+#AudioFormatSampleSize=4
+#AudioFormatIncrement=8
+
+[CUSTOM_ACTION_256]
+CASE_1=PRIORITY:0,NUMBERS:2:0|1,PRESET:SPEAKER_MUSIC
+CASE_2=PRIORITY:1,NUMBERS:1|2|4194304:2|3|4,PRESET:SPEAKER_SAFE_CALL
+CASE_3=PRIORITY:2,NUMBERS:1|4194304:0|1,PRESET:SPEAKER_SAFE_MUSIC
diff --git a/audio/whitefin/tuning/waves/tests/test_preset.mps b/audio/whitefin/tuning/waves/tests/test_preset.mps
new file mode 100644
index 0000000..bd08ee3
--- /dev/null
+++ b/audio/whitefin/tuning/waves/tests/test_preset.mps
Binary files differ
diff --git a/audio/whitefin/tuning/waves/waves_config.ini b/audio/whitefin/tuning/waves/waves_config.ini
index 99b9604..ba12a8e 100644
--- a/audio/whitefin/tuning/waves/waves_config.ini
+++ b/audio/whitefin/tuning/waves/waves_config.ini
@@ -1,4 +1,13 @@
 ########################################################################################################
+# (Optional) The supported features list for platform vendors to query from.
+# Platform vendors should call maxxaudio_qdsp_is_feature_supported with a string to query from the list.
+# This config has no effect in the MaxxAudioQdspHalController. It's only meaningful for platform vendors.
+# Putting any value other than 1 would be equivalent to not supported.
+########################################################################################################
+[HAL_SUPPORTED_FEATURES]
+CUSTOM_ACTION_256=1
+
+########################################################################################################
 # This defined the options of supported sample rates.
 # This can be configured by Waves or platform vendor.
 ########################################################################################################
diff --git a/conf/init.raviole.rc b/conf/init.raviole.rc
index 330eacf..ed55764 100644
--- a/conf/init.raviole.rc
+++ b/conf/init.raviole.rc
@@ -1,5 +1,10 @@
 # Raven/Oriole specific init.rc
 
+on init
+    # NFC streset tool name
+    setprop persist.vendor.nfc.streset libstreset21
+    setprop persist.vendor.se.streset libstreset21
+
 on init && property:ro.vendor.factory=1
     import /vendor/etc/init/hw/init.factory.rc
 
diff --git a/conf/init.slider.rc b/conf/init.slider.rc
index a6c8d2c..f8506a5 100644
--- a/conf/init.slider.rc
+++ b/conf/init.slider.rc
@@ -1,6 +1,11 @@
 # Slider specific init.rc
 import /vendor/etc/init/hw/init.gs101.rc
 
+on init
+    # NFC streset tool name
+    setprop persist.vendor.nfc.streset libstreset21
+    setprop persist.vendor.se.streset libstreset21
+
 # When ro.build.flavor=factory_slider-userdebug, add vendor/bin/factory to default path
 on init && property:ro.build.flavor=factory_slider-userdebug
     import /vendor/etc/init/hw/init.factory.rc
diff --git a/conf/init.whitefin.rc b/conf/init.whitefin.rc
index e0fe9d9..f74abbb 100644
--- a/conf/init.whitefin.rc
+++ b/conf/init.whitefin.rc
@@ -1,6 +1,11 @@
 # Whitefin specific init.rc
 import /vendor/etc/init/hw/init.gs101.rc
 
+on init
+    # NFC streset tool name
+    setprop persist.vendor.nfc.streset libstreset21
+    setprop persist.vendor.se.streset libstreset21
+
 on init && property:ro.build.flavor=factory_whitefin-userdebug
     import /vendor/etc/init/hw/init.factory.rc
 
diff --git a/device-oriole.mk b/device-oriole.mk
index a3744be..adde7b3 100644
--- a/device-oriole.mk
+++ b/device-oriole.mk
@@ -25,6 +25,7 @@
 $(call inherit-product-if-exists, vendor/google/camera/devices/raviole/oriole/device-vendor.mk)
 $(call inherit-product-if-exists, vendor/google_devices/raviole/proprietary/WallpapersOriole.mk)
 
+GOODIX_CONFIG_BUILD_VERSION := g6_trusty
 DEVICE_PACKAGE_OVERLAYS += device/google/raviole/oriole/overlay
 
 include device/google/raviole/audio/oriole/audio-tables.mk
@@ -38,6 +39,8 @@
 include device/google/gs101/fingerprint/udfps_factory.mk
 endif
 
+SOONG_CONFIG_lyric_tuning_product := oriole
+SOONG_CONFIG_google3a_config_target_device := oriole
 
 # Init files
 PRODUCT_COPY_FILES += \
@@ -75,6 +78,9 @@
 PRODUCT_PACKAGES_DEBUG += \
     sar_test
 
+# WirelessCharger
+DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs101/device_framework_matrix_product_wireless.xml
+
 # MIPI Coex Configs
 PRODUCT_COPY_FILES += \
     device/google/raviole/radio/oriole_display_mipi_coex_table.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/display_primary_mipi_coex_table.csv \
@@ -92,18 +98,39 @@
 
 # NFC
 PRODUCT_COPY_FILES += \
+	frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \
+	frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \
+	frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \
+	frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml \
+	frameworks/native/data/etc/android.hardware.nfc.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.uicc.xml \
+	frameworks/native/data/etc/android.hardware.nfc.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.ese.xml \
 	device/google/raviole/nfc/libnfc-hal-st.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st.conf \
 	device/google/raviole/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_PRODUCT)/etc/libnfc-nci.conf
 
+PRODUCT_PACKAGES += \
+	NfcNci \
+	Tag \
+	android.hardware.nfc@1.2-service.st
+
+# SecureElement
+PRODUCT_PACKAGES += \
+	android.hardware.secure_element@1.2-service-gto
+
+PRODUCT_COPY_FILES += \
+	frameworks/native/data/etc/android.hardware.se.omapi.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.ese.xml \
+	frameworks/native/data/etc/android.hardware.se.omapi.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.uicc.xml \
+        device/google/raviole/nfc/libse-gto-hal.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal.conf
 
 DEVICE_MANIFEST_FILE += \
-	device/google/gs101/nfc/manifest_se_gs101.xml
+	device/google/raviole/nfc/manifest_nfc.xml \
+	device/google/raviole/nfc/manifest_se.xml
 
 # Vibrator HAL
 PRODUCT_PRODUCT_PROPERTIES +=\
     ro.vendor.vibrator.hal.long.frequency.shift=15
 PRODUCT_PRODUCT_PROPERTIES += \
         vendor.powerhal.adpf.rate=11111111
+ACTUATOR_MODEL := luxshare_ict_081545
 
 # Voice packs for Text-To-Speech
 PRODUCT_COPY_FILES += \
@@ -175,3 +202,11 @@
 # Enable camera exif model/make reporting
 PRODUCT_VENDOR_PROPERTIES += \
     persist.vendor.camera.exif_reveal_make_model=true
+
+# Override default distortion output gain according to UX experiments
+PRODUCT_PRODUCT_PROPERTIES += \
+    vendor.audio.hapticgenerator.distortion.output.gain=0.5
+
+# Set zram size
+PRODUCT_VENDOR_PROPERTIES += \
+    vendor.zram.size=3g
diff --git a/device-raven.mk b/device-raven.mk
index 723844c..38f5af0 100644
--- a/device-raven.mk
+++ b/device-raven.mk
@@ -25,6 +25,7 @@
 $(call inherit-product-if-exists, vendor/google/camera/devices/raviole/raven/device-vendor.mk)
 $(call inherit-product-if-exists, vendor/google_devices/raviole/proprietary/WallpapersRaven.mk)
 
+GOODIX_CONFIG_BUILD_VERSION := g6_trusty
 DEVICE_PACKAGE_OVERLAYS += device/google/raviole/raven/overlay
 
 include device/google/raviole/audio/raven/audio-tables.mk
@@ -39,10 +40,14 @@
 
 ifeq ($(filter factory_raven, $(TARGET_PRODUCT)),)
 include device/google/gs101/uwb/uwb.mk
+include device/google/raviole/uwb/uwb_calibration.mk
 endif
 
 include hardware/google/pixel/vibrator/cs40l25/device.mk
 
+SOONG_CONFIG_lyric_tuning_product := raven
+SOONG_CONFIG_google3a_config_target_device := raven
+
 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.support_kernel_idle_timer=true
 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.enable_frame_rate_override=true
 
@@ -79,6 +84,9 @@
 PRODUCT_PACKAGES_DEBUG += \
     sar_test
 
+# WirelessCharger
+DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs101/device_framework_matrix_product_wireless.xml
+
 # MIPI Coex Configs
 PRODUCT_COPY_FILES += \
 	device/google/raviole/radio/raven_camera_rear_tele_mipi_coex_table.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/camera_rear_tele_mipi_coex_table.csv
@@ -97,17 +105,39 @@
 
 # NFC
 PRODUCT_COPY_FILES += \
+	frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \
+	frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \
+	frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \
+	frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml \
+	frameworks/native/data/etc/android.hardware.nfc.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.uicc.xml \
+	frameworks/native/data/etc/android.hardware.nfc.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.ese.xml \
 	device/google/raviole/nfc/libnfc-hal-st.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st.conf \
 	device/google/raviole/nfc/libnfc-nci-raven.conf:$(TARGET_COPY_OUT_PRODUCT)/etc/libnfc-nci.conf
 
+PRODUCT_PACKAGES += \
+	NfcNci \
+	Tag \
+	android.hardware.nfc@1.2-service.st
+
+# SecureElement
+PRODUCT_PACKAGES += \
+	android.hardware.secure_element@1.2-service-gto
+
+PRODUCT_COPY_FILES += \
+	frameworks/native/data/etc/android.hardware.se.omapi.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.ese.xml \
+	frameworks/native/data/etc/android.hardware.se.omapi.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.uicc.xml \
+        device/google/raviole/nfc/libse-gto-hal.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal.conf
+
 DEVICE_MANIFEST_FILE += \
-	device/google/gs101/nfc/manifest_se_gs101.xml
+	device/google/raviole/nfc/manifest_nfc.xml \
+	device/google/raviole/nfc/manifest_se.xml
 
 # Vibrator HAL
 PRODUCT_PRODUCT_PROPERTIES +=\
     ro.vendor.vibrator.hal.long.frequency.shift=15
 PRODUCT_PRODUCT_PROPERTIES += \
         vendor.powerhal.adpf.rate=8333333
+ACTUATOR_MODEL := luxshare_ict_081545
 
 # Voice packs for Text-To-Speech
 PRODUCT_COPY_FILES += \
@@ -162,7 +192,7 @@
 
 # DCK properties based on target
 PRODUCT_PROPERTY_OVERRIDES += \
-    ro.gms.dck.eligible_wcc=2
+    ro.gms.dck.eligible_wcc=3
 
 # SKU specific RROs
 PRODUCT_PACKAGES += \
@@ -180,3 +210,11 @@
 # Enable camera exif model/make reporting
 PRODUCT_VENDOR_PROPERTIES += \
     persist.vendor.camera.exif_reveal_make_model=true
+
+# Override default distortion output gain according to UX experiments
+PRODUCT_PRODUCT_PROPERTIES += \
+    vendor.audio.hapticgenerator.distortion.output.gain=0.5
+
+# Set zram size
+PRODUCT_VENDOR_PROPERTIES += \
+    vendor.zram.size=3g
diff --git a/device-slider.mk b/device-slider.mk
index 8acb9ff..acacaf7 100644
--- a/device-slider.mk
+++ b/device-slider.mk
@@ -28,6 +28,12 @@
 include device/google/raviole/audio/slider/audio-tables.mk
 include hardware/google/pixel/vibrator/cs40l25/device.mk
 
+SOONG_CONFIG_lyric_tuning_product := slider
+SOONG_CONFIG_google3a_config_target_device := slider
+
+# WirelessCharger
+DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs101/device_framework_matrix_product_wireless.xml
+
 # Init files
 PRODUCT_COPY_FILES += \
 	device/google/raviole/conf/init.slider.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.slider.rc
@@ -58,20 +64,40 @@
 
 # SecureElement
 PRODUCT_PACKAGES += \
-    android.hardware.secure_element@1.2-service-gto \
-    android.hardware.secure_element@1.2-service-gto-ese2
+    android.hardware.secure_element@1.2-service-gto
 
 PRODUCT_COPY_FILES += \
-    device/google/gs101/nfc/libse-gto-hal.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal.conf \
-    device/google/gs101/nfc/libse-gto-hal2.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal2.conf
+    device/google/raviole/nfc/libse-gto-hal.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal.conf
 
 # NFC
 PRODUCT_COPY_FILES += \
+	frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \
+	frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \
+	frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \
+	frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml \
+	frameworks/native/data/etc/android.hardware.nfc.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.uicc.xml \
+	frameworks/native/data/etc/android.hardware.nfc.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.ese.xml \
 	device/google/raviole/nfc/libnfc-hal-st-disable.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st.conf \
 	device/google/raviole/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_PRODUCT)/etc/libnfc-nci.conf
 
+PRODUCT_PACKAGES += \
+	NfcNci \
+	Tag \
+	android.hardware.nfc@1.2-service.st
+
+# SecureElement
+PRODUCT_PACKAGES += \
+	android.hardware.secure_element@1.2-service-gto
+
+PRODUCT_COPY_FILES += \
+	frameworks/native/data/etc/android.hardware.se.omapi.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.ese.xml \
+	frameworks/native/data/etc/android.hardware.se.omapi.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.uicc.xml \
+        device/google/raviole/nfc/libse-gto-hal.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal.conf \
+	device/google/raviole/nfc/libse-gto-hal2.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal2.conf
+
 DEVICE_MANIFEST_FILE += \
-	device/google/gs101/nfc/manifest_se_gs101.xml
+	device/google/raviole/nfc/manifest_nfc.xml \
+	device/google/raviole/nfc/manifest_se.xml
 
 # PowerStats HAL
 PRODUCT_SOONG_NAMESPACES += device/google/raviole/powerstats/slider
diff --git a/device-whitefin.mk b/device-whitefin.mk
index a61250b..52e556b 100644
--- a/device-whitefin.mk
+++ b/device-whitefin.mk
@@ -28,6 +28,12 @@
 include hardware/google/pixel/vibrator/drv2624/device.mk
 include device/google/raviole/audio/whitefin/audio-tables.mk
 
+SOONG_CONFIG_lyric_tuning_product := slider
+SOONG_CONFIG_google3a_config_target_device := slider
+
+# WirelessCharger
+DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs101/device_framework_matrix_product_wireless.xml
+
 # Init files
 PRODUCT_COPY_FILES += \
 	device/google/raviole/conf/init.whitefin.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.whitefin.rc
@@ -57,7 +63,22 @@
 
 # NFC
 PRODUCT_COPY_FILES += \
-	device/google/gs101/nfc/libnfc-hal-st.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st.conf
+	frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \
+	frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \
+	frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \
+	frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml \
+	frameworks/native/data/etc/android.hardware.nfc.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.uicc.xml \
+	frameworks/native/data/etc/android.hardware.se.omapi.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.uicc.xml \
+	device/google/raviole/nfc/libnfc-hal-st.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st.conf \
+	device/google/raviole/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_PRODUCT)/etc/libnfc-nci.conf
+
+PRODUCT_PACKAGES += \
+	NfcNci \
+	Tag \
+	android.hardware.nfc@1.2-service.st
+
+DEVICE_MANIFEST_FILE += \
+	device/google/raviole/nfc/manifest_nfc.xml
 
 # PowerStats HAL
 PRODUCT_SOONG_NAMESPACES += device/google/raviole/powerstats/whitefin
diff --git a/nfc/libse-gto-hal.conf b/nfc/libse-gto-hal.conf
new file mode 100644
index 0000000..f4e443d
--- /dev/null
+++ b/nfc/libse-gto-hal.conf
@@ -0,0 +1,2 @@
+#Gemalto SPI devnode
+GTO_DEV=/dev/st54spi;
diff --git a/nfc/libse-gto-hal2.conf b/nfc/libse-gto-hal2.conf
new file mode 100644
index 0000000..13ecd54
--- /dev/null
+++ b/nfc/libse-gto-hal2.conf
@@ -0,0 +1,2 @@
+#Gemalto SPI devnode
+GTO_DEV=/dev/st33spi;
diff --git a/nfc/manifest_nfc.xml b/nfc/manifest_nfc.xml
new file mode 100644
index 0000000..bf6b7cc
--- /dev/null
+++ b/nfc/manifest_nfc.xml
@@ -0,0 +1,11 @@
+<manifest version="1.0" type="device">
+  <hal format="hidl">
+    <name>android.hardware.nfc</name>
+    <transport>hwbinder</transport>
+    <version>1.2</version>
+    <interface>
+      <name>INfc</name>
+      <instance>default</instance>
+      </interface>
+  </hal>
+</manifest>
diff --git a/nfc/manifest_se.xml b/nfc/manifest_se.xml
new file mode 100644
index 0000000..9e5cee9
--- /dev/null
+++ b/nfc/manifest_se.xml
@@ -0,0 +1,7 @@
+<manifest version="1.0" type="device">
+  <hal format="hidl">
+    <name>android.hardware.secure_element</name>
+    <transport>hwbinder</transport>
+    <fqname>@1.2::ISecureElement/eSE1</fqname>
+  </hal>
+</manifest>
diff --git a/oriole/BoardConfig.mk b/oriole/BoardConfig.mk
index d94b836..e1ef669 100644
--- a/oriole/BoardConfig.mk
+++ b/oriole/BoardConfig.mk
@@ -13,11 +13,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-TARGET_BOARD_INFO_FILE := device/google/raviole/board-info.txt
-TARGET_BOOTLOADER_BOARD_NAME := oriole
-TARGET_SCREEN_DENSITY := 420
-USES_DEVICE_GOOGLE_RAVIOLE := true
+ifdef PHONE_CAR_BOARD_CONFIG
+  include $(PHONE_CAR_BOARD_CONFIG)
+else
+  TARGET_BOARD_INFO_FILE := device/google/raviole/board-info.txt
+  TARGET_BOOTLOADER_BOARD_NAME := oriole
+  TARGET_SCREEN_DENSITY := 420
+  USES_DEVICE_GOOGLE_RAVIOLE := true
 
-include device/google/gs101/BoardConfig-common.mk
--include vendor/google_devices/gs101/prebuilts/BoardConfigVendor.mk
--include vendor/google_devices/oriole/proprietary/BoardConfigVendor.mk
+  include device/google/gs101/BoardConfig-common.mk
+  -include vendor/google_devices/gs101/prebuilts/BoardConfigVendor.mk
+  -include vendor/google_devices/oriole/proprietary/BoardConfigVendor.mk
+endif
diff --git a/oriole/overlay/frameworks/base/core/res/res/values/config.xml b/oriole/overlay/frameworks/base/core/res/res/values/config.xml
index 267bc29..f2bc440 100644
--- a/oriole/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/oriole/overlay/frameworks/base/core/res/res/values/config.xml
@@ -80,9 +80,9 @@
 
     <string translatable="false" name="config_mainBuiltInDisplayCutoutRectApproximation">
         M 492,0
-        h 118
+        h 124
         v 118
-        h -118
+        h -124
         Z
         @left
     </string>
@@ -90,12 +90,10 @@
     <!-- Radius of the software rounded corners. -->
     <dimen name="rounded_corner_radius">28px</dimen>
 
-    <!-- Height of the status bar in portrait. The height should be
-         Max((status bar content height + waterfall top size), top cutout size) -->
-    <dimen name="status_bar_height_portrait">124px</dimen>
-    <dimen name="status_bar_height_landscape">74px</dimen>
-    <!-- Height of area above QQS where battery/time go (equal to status bar) -->
-    <dimen name="quick_qs_offset_height">124px</dimen>
+    <!-- Height of the status bar.
+         Do not read this dimen directly. Use {@link SystemBarUtils#getStatusBarHeight} instead.
+         -->
+    <dimen name="status_bar_height_height">74px</dimen>
 
     <!-- Adjustment for software rounded corners since corners aren't perfectly round. -->
     <dimen name="rounded_corner_radius_adjustment">5px</dimen>
diff --git a/oriole/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml b/oriole/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
index 29363c6..b364c4a 100644
--- a/oriole/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
+++ b/oriole/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
@@ -25,8 +25,8 @@
     <!-- the padding on the top of the statusbar (usually 0) -->
     <dimen name="status_bar_padding_top">1px</dimen>
 
-    <!-- Height of the status bar header bar when on Keyguard (match status_bar_portrait) -->
-    <dimen name="status_bar_header_height_keyguard">@*android:dimen/status_bar_height_portrait</dimen>
+    <!-- Height of the status bar header bar when on Keyguard (match status_bar_height) -->
+    <dimen name="status_bar_header_height_keyguard">@*android:dimen/status_bar_height</dimen>
 
     <!-- Padding for the system icons on the keyguard (when no multi user switch is showing).
     The icons always have a 4dp padding in the container so we only need 26 extra px of padding
diff --git a/raven/BoardConfig.mk b/raven/BoardConfig.mk
index 6d752a4..c3f2cc7 100644
--- a/raven/BoardConfig.mk
+++ b/raven/BoardConfig.mk
@@ -13,11 +13,16 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-TARGET_BOARD_INFO_FILE := device/google/raviole/board-info.txt
-TARGET_BOOTLOADER_BOARD_NAME := raven
-TARGET_SCREEN_DENSITY := 560
-USES_DEVICE_GOOGLE_RAVIOLE := true
 
-include device/google/gs101/BoardConfig-common.mk
--include vendor/google_devices/gs101/prebuilts/BoardConfigVendor.mk
--include vendor/google_devices/raven/proprietary/BoardConfigVendor.mk
+ifdef PHONE_CAR_BOARD_CONFIG
+  include $(PHONE_CAR_BOARD_CONFIG)
+else
+  TARGET_BOARD_INFO_FILE := device/google/raviole/board-info.txt
+  TARGET_BOOTLOADER_BOARD_NAME := raven
+  TARGET_SCREEN_DENSITY := 560
+  USES_DEVICE_GOOGLE_RAVIOLE := true
+
+  include device/google/gs101/BoardConfig-common.mk
+  -include vendor/google_devices/gs101/prebuilts/BoardConfigVendor.mk
+  -include vendor/google_devices/raven/proprietary/BoardConfigVendor.mk
+endif
diff --git a/raven/overlay/frameworks/base/core/res/res/values/config.xml b/raven/overlay/frameworks/base/core/res/res/values/config.xml
index ba283e6..c68e625 100644
--- a/raven/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/raven/overlay/frameworks/base/core/res/res/values/config.xml
@@ -34,9 +34,9 @@
 
     <string translatable="false" name="config_mainBuiltInDisplayCutoutRectApproximation">
         M 653,0
-        h 130
+        h 145
         v 130
-        h -130
+        h -145
         Z
         @left
     </string>
@@ -195,13 +195,10 @@
          non-zero amplitudes, to bring the vibrator amplitude down to zero using this timing. -->
     <integer name="config_vibrationWaveformRampDownDuration">50</integer>
 
-    <!-- Height of the status bar in portrait. The height should be
-         Max((status bar content height + waterfall top size), top cutout size) -->
-    <dimen name="status_bar_height_portrait">145px</dimen>
-    <dimen name="status_bar_height_landscape">28dp</dimen>
-
-    <!-- Height of area above QQS where battery/time go (equal to status bar) -->
-    <dimen name="quick_qs_offset_height">145px</dimen>
+    <!-- Height of the status bar.
+         Do not read this dimen directly. Use {@link SystemBarUtils#getStatusBarHeight} instead.
+         -->
+    <dimen name="status_bar_height">28dp</dimen>
 
     <!-- If face auth sends the user directly to home/last open app, or stays on keyguard by default-->
     <bool name="config_faceAuthDismissesKeyguard">false</bool>
diff --git a/raven/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml b/raven/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
index bd8bafa..fb6ecc9 100644
--- a/raven/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
+++ b/raven/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
@@ -22,8 +22,8 @@
     <!-- the padding on the top of the statusbar (usually 0) -->
     <dimen name="status_bar_padding_top">1px</dimen>
 
-    <!-- Height of the status bar header bar when on Keyguard (match status_bar_portrait) -->
-    <dimen name="status_bar_header_height_keyguard">@*android:dimen/status_bar_height_portrait</dimen>
+    <!-- Height of the status bar header bar when on Keyguard (match status_bar_height) -->
+    <dimen name="status_bar_header_height_keyguard">@*android:dimen/status_bar_height</dimen>
 
     <!-- Padding for the system icons on the keyguard (when no multi user switch is showing).
     The icons always have a 4dp padding in the container so we only need 26 extra px of padding
diff --git a/uwb/UWB-calibration.conf b/uwb/UWB-calibration.conf
new file mode 100644
index 0000000..c5041bf
--- /dev/null
+++ b/uwb/UWB-calibration.conf
@@ -0,0 +1,117 @@
+[CCC]format=1
+[CCC]kind=0
+[CCC]settings=1
+[CCC]ant0.ch5.prf64.pdoa_iso_rf2_rf1=0
+[CCC]ant0.ch5.prf64.pdoa_iso_rf1_rf2=0
+[CCC]ant0.ch9.prf64.pdoa_iso_rf2_rf1=0
+[CCC]ant0.ch9.prf64.pdoa_iso_rf1_rf2=0
+[CCC]ant0.ch5.prf64.pdoa_offset=0
+[CCC]ant0.ch9.prf64.pdoa_offset=0
+[CCC]ant0.ch5.prf64.pll_locking_code=0
+[CCC]ant0.ch9.prf64.pll_locking_code=0
+[CCC]id=0
+[CCC]wifi_coex_time_gap=10
+[CCC]ap_coop_mode=1
+[CCC]antenna_selection=4
+[CCC]wifi_coex_min_spacing=0x08
+ant0.ch5.prf16.ant_delay=16450
+ant0.ch5.prf16.tx_power=0x4E4E4E4E
+ant0.ch5.prf16.pg_count=0
+ant0.ch5.prf16.pg_delay=0x26
+ant0.ch5.prf64.ant_delay=16450
+ant0.ch5.prf64.tx_power=0x4E4E4E4E
+ant0.ch5.prf64.pg_count=0
+ant0.ch5.prf64.pg_delay=0x26
+ant0.ch9.prf16.ant_delay=16450
+ant0.ch9.prf16.tx_power=0x56565656
+ant0.ch9.prf16.pg_count=0
+ant0.ch9.prf16.pg_delay=0x26
+ant0.ch9.prf64.ant_delay=16450
+ant0.ch9.prf64.tx_power=0x56565656
+ant0.ch9.prf64.pg_count=0
+ant0.ch9.prf64.pg_delay=0x26
+ant0.port=0
+ant0.selector_gpio=7
+ant0.selector_gpio_value=0
+ant1.ch5.prf16.ant_delay=16450
+ant1.ch5.prf16.tx_power=0x4E4E4E4E
+ant1.ch5.prf16.pg_count=0
+ant1.ch5.prf16.pg_delay=0x26
+ant1.ch5.prf64.ant_delay=16450
+ant1.ch5.prf64.tx_power=0x4E4E4E4E
+ant1.ch5.prf64.pg_count=0
+ant1.ch5.prf64.pg_delay=0x26
+ant1.ch9.prf16.ant_delay=16450
+ant1.ch9.prf16.tx_power=0x56565656
+ant1.ch9.prf16.pg_count=0
+ant1.ch9.prf16.pg_delay=0x26
+ant1.ch9.prf64.ant_delay=16450
+ant1.ch9.prf64.tx_power=0x56565656
+ant1.ch9.prf64.pg_count=0
+ant1.ch9.prf64.pg_delay=0x26
+ant1.port=0
+ant1.selector_gpio=7
+ant1.selector_gpio_value=1
+ant2.ch5.prf16.ant_delay=16450
+ant2.ch5.prf16.tx_power=0x4E4E4E4E
+ant2.ch5.prf16.pg_count=0
+ant2.ch5.prf16.pg_delay=0x26
+ant2.ch5.prf64.ant_delay=16450
+ant2.ch5.prf64.tx_power=0x4E4E4E4E
+ant2.ch5.prf64.pg_count=0
+ant2.ch5.prf64.pg_delay=0x26
+ant2.ch9.prf16.ant_delay=16450
+ant2.ch9.prf16.tx_power=0x56565656
+ant2.ch9.prf16.pg_count=0
+ant2.ch9.prf16.pg_delay=0x26
+ant2.ch9.prf64.ant_delay=16450
+ant2.ch9.prf64.tx_power=0x56565656
+ant2.ch9.prf64.pg_count=0
+ant2.ch9.prf64.pg_delay=0x26
+ant2.port=1
+ant2.selector_gpio=6
+ant2.selector_gpio_value=0
+ant3.ch5.prf16.ant_delay=16450
+ant3.ch5.prf16.tx_power=0x4E4E4E4E
+ant3.ch5.prf16.pg_count=0
+ant3.ch5.prf16.pg_delay=0x26
+ant3.ch5.prf64.ant_delay=16450
+ant3.ch5.prf64.tx_power=0x4E4E4E4E
+ant3.ch5.prf64.pg_count=0
+ant3.ch5.prf64.pg_delay=0x26
+ant3.ch9.prf16.ant_delay=16450
+ant3.ch9.prf16.tx_power=0x56565656
+ant3.ch9.prf16.pg_count=0
+ant3.ch9.prf16.pg_delay=0x26
+ant3.ch9.prf64.ant_delay=16450
+ant3.ch9.prf64.tx_power=0x56565656
+ant3.ch9.prf64.pg_count=0
+ant3.ch9.prf64.pg_delay=0x26
+ant3.port=1
+ant3.selector_gpio=6
+ant3.selector_gpio_value=1
+ant0.ant1.ch5.pdoa_offset=0
+ant0.ant1.ch9.pdoa_offset=0
+ant0.ant2.ch5.pdoa_offset=0
+ant0.ant2.ch9.pdoa_offset=0
+ant1.ant2.ch5.pdoa_offset=0
+ant1.ant2.ch9.pdoa_offset=0
+ant0.ant3.ch5.pdoa_offset=0
+ant0.ant3.ch9.pdoa_offset=0
+ant1.ant3.ch5.pdoa_offset=-4710
+ant1.ant3.ch9.pdoa_offset=-6144
+ant2.ant3.ch5.pdoa_offset=0
+ant2.ant3.ch9.pdoa_offset=0
+ch5.pll_locking_code=0
+ch9.pll_locking_code=0
+ant1.ant3.ch5.pdoa_lut=e1:f2:85:f5:ae:f3:3d:f6:52:f4:f6:f6:8f:f4:9a:f7:48:f5:52:f8:d7:f5:0a:f9:66:f6:ae:f9:85:f7:66:fa:8f:f8:1f:fb:48:f9:d7:fb:8f:fa:7b:fc:ec:fb:33:fd:0a:fd:ec:fd:66:fe:a4:fe:00:00:48:ff:71:01:00:00:b8:02:b8:00:29:04:64:01:ae:05:19:02:85:07:cb:02:33:09:7d:03:f6:0a:2f:04:0a:0d:e3:04:cd:0e:96:05:14:10:48:06:71:11:fa:06:66:12:ac:07:33:13:60:08:3d:14:12:09:85:15:c5:09:ec:15:77:0a
+ant1.ant3.ch9.pdoa_lut=e1:ec:f6:f6:48:ed:3d:f6:85:ed:85:f5:14:ee:9a:f7:3d:ee:52:f8:e1:ee:0a:f9:3d:f0:ae:f9:85:f1:66:fa:85:f3:1f:fb:00:f6:d7:fb:9a:f7:7b:fc:14:fa:33:fd:ec:fb:ec:fd:71:fd:a4:fe:cd:fe:48:ff:a4:00:00:00:85:01:b8:00:7b:02:5c:01:d7:03:14:02:cd:04:cd:02:48:07:85:03:ae:09:29:04:e1:0c:e1:04:7b:10:9a:05:cd:12:52:06:f6:14:f6:06:a4:16:ae:07:ae:17:0a:09:d7:17:c3:09:52:18:66:08:7b:18:7b:0a
+xtal_trim=31
+temperature_reference=85
+smart_tx_power=1
+auto_sleep_margin=20000
+[HAL]antenna_pair_azimuth=4
+[HAL]antenna_pair_elevation=0xff
+[HAL]tx_antenna=0
+[HAL]minimum_system_offset_uwbtime0=300
+restricted_channels=0
diff --git a/uwb/uwb_calibration.mk b/uwb/uwb_calibration.mk
new file mode 100644
index 0000000..d0585d9
--- /dev/null
+++ b/uwb/uwb_calibration.mk
@@ -0,0 +1,21 @@
+#
+# Copyright (C) 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.
+
+LOCAL_UWB_CAL_DIR=device/google/raviole/uwb
+
+PRODUCT_COPY_FILES += \
+    $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration.conf \
+    $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-unknown.conf \
+    $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-default.conf \