Update oriole SVN to 40 am: 00838c077c am: d927648ab3 am: f64fa0c357

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

Change-Id: I35f27f77e0c3a7def40a9cd947dacfc6b299266c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/audio/oriole/audio-tables.mk b/audio/oriole/audio-tables.mk
index 5c63f40..8d15bf9 100644
--- a/audio/oriole/audio-tables.mk
+++ b/audio/oriole/audio-tables.mk
@@ -25,7 +25,7 @@
     device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/config/sound_trigger_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_configuration.xml \
     device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
     device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/config/audio_policy_configuration_le_offload_disabled.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_le_offload_disabled.xml \
-    frameworks/av/services/audiopolicy/config/bluetooth_with_le_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration_7_0.xml
+    device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/config/bluetooth_with_le_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration_7_0.xml
 
 # AudioEffectHAL Configuration
 PRODUCT_COPY_FILES += \
diff --git a/audio/oriole/config/audio_effects.xml b/audio/oriole/config/audio_effects.xml
index 1718057..e35bfbd 100644
--- a/audio/oriole/config/audio_effects.xml
+++ b/audio/oriole/config/audio_effects.xml
@@ -10,6 +10,7 @@
         <library name="proxy" path="libeffectproxy.so"/>
         <library name="offload_effect" path="liboffloadeffect.so"/>
         <library name="haptic_generator" path="libhapticgenerator.so"/>
+        <library name="spatializer" path="libspatialaudio.so"/>
     </libraries>
     <effects>
         <effectProxy name="bassboost" library="proxy" uuid="2f0871a2-c93c-4824-9664-42eb2909f2ef">
@@ -51,6 +52,7 @@
         <effect name="ns" library="offload_effect" uuid="62ff2836-d050-43c3-9c2d-94a73dad2c64"/>
         <effect name="haptic_generator" library="haptic_generator" uuid="97c4acd1-8b82-4f2f-832e-c2fe5d7a9931"/>
         <effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/>
+        <effect name="spatializer" library="spatializer" uuid="cc4677de-ff72-11eb-9a03-0242ac130003"/>
     </effects>
     <postprocess>
     </postprocess>
diff --git a/audio/oriole/config/audio_platform_configuration.xml b/audio/oriole/config/audio_platform_configuration.xml
index a4232cd..35bf66f 100644
--- a/audio/oriole/config/audio_platform_configuration.xml
+++ b/audio/oriole/config/audio_platform_configuration.xml
@@ -182,6 +182,8 @@
         <usecase id="UC_DEEP_BUFFER_PLAYBACK" dev1="5" dyn_path="true" dsp_vol="false" mmap="false" period="20" period_num="4"/>
         <!-- dev1: voice-call downlink dev2: voice-clal uplink -->
         <usecase id="UC_VOICE_CALL" dev1="4" dev2="11"/>
+        <!-- for output with flag AUDIO_OUTPUT_SPATIALIZER -->
+        <usecase id="UC_IMMERSIVE_PLAYBACK" dev1="30" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="3"/>
         <!-- for output with AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD, 4 * 128KB buffer -->
         <usecase id="UC_COMPRESSED_OFFLOAD_PLAYBACK" dev1="6" dyn_path="true" dsp_vol="true" mmap="false" period="131072" period_num="4" pre_proc_id="14"/>
         <!-- dev1: audio dev2: haptic -->
@@ -217,6 +219,10 @@
             <be_cfg be_id="OUT_A2DP_BE_CFG" latency="180000"/>
         </usecase>
 
+        <usecase id="UC_IMMERSIVE_PLAYBACK" type="playback">
+            <be_cfg be_id="OUT_A2DP_BE_CFG" latency="100000"/>
+        </usecase>
+
         <usecase id="UC_AUDIO_RECORD" type="capture">
             <be_cfg be_id="IN_CAMCORDER_LANDSCAPE_BE_CFG" latency="160000"/>
             <be_cfg be_id="IN_CAMCORDER_INVERT_LANDSCAPE_BE_CFG" latency="160000"/>
diff --git a/audio/oriole/config/audio_policy_configuration.xml b/audio/oriole/config/audio_policy_configuration.xml
index 5bd7ec8..1e27950 100644
--- a/audio/oriole/config/audio_policy_configuration.xml
+++ b/audio/oriole/config/audio_policy_configuration.xml
@@ -37,7 +37,7 @@
                              samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </mixPort>
                 <mixPort name="compressed_offload" role="source"
-                         flags="AUDIO_OUTPUT_FLAG_DIRECT AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD AUDIO_OUTPUT_FLAG_NON_BLOCKING">
+                         flags="AUDIO_OUTPUT_FLAG_DIRECT AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD AUDIO_OUTPUT_FLAG_NON_BLOCKING AUDIO_OUTPUT_FLAG_GAPLESS_OFFLOAD">
                     <profile name="" format="AUDIO_FORMAT_MP3"
                              samplingRates="8000 16000 24000 32000 44100 48000"
                              channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
@@ -64,6 +64,10 @@
                     <profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
                              samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </mixPort>
+                <mixPort name="immersive_out" role="source" flags="AUDIO_OUTPUT_FLAG_SPATIALIZER">
+                    <profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="incall playback" role="source"
                          flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -159,17 +163,17 @@
                 <devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
                 </devicePort>
                 <devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
                 <devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
                 <devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
@@ -196,25 +200,25 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,immersive_out"/>
                 <route type="mix" sink="Speaker Safe"
                        sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
                        sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="BT A2DP Out"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="BT A2DP Headphones"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="BT A2DP Speaker"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="BT BLE Headset"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="BT BLE Speaker"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
                 <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
                 <route type="mix" sink="BT SCO"
                        sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
                 <route type="mix" sink="BT SCO Headset"
diff --git a/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml
index c0f0677..e106936 100644
--- a/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/oriole/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -64,6 +64,10 @@
                     <profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
                              samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </mixPort>
+                <mixPort name="immersive_out" role="source" flags="AUDIO_OUTPUT_FLAG_SPATIALIZER">
+                    <profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="incall playback" role="source"
                          flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -171,15 +175,15 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,immersive_out"/>
                 <route type="mix" sink="Speaker Safe"
                        sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
                        sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
                 <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
                 <route type="mix" sink="BT SCO"
                        sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
                 <route type="mix" sink="BT SCO Headset"
diff --git a/audio/oriole/config/audio_policy_configuration_le_offload_disabled.xml b/audio/oriole/config/audio_policy_configuration_le_offload_disabled.xml
index 95c2dbe..3c8466a 100644
--- a/audio/oriole/config/audio_policy_configuration_le_offload_disabled.xml
+++ b/audio/oriole/config/audio_policy_configuration_le_offload_disabled.xml
@@ -64,6 +64,10 @@
                     <profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
                              samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </mixPort>
+                <mixPort name="immersive_out" role="source" flags="AUDIO_OUTPUT_FLAG_SPATIALIZER">
+                    <profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="incall playback" role="source"
                          flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -159,17 +163,17 @@
                 <devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
                 </devicePort>
                 <devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
                 <devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
                 <devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
@@ -186,21 +190,21 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,immersive_out"/>
                 <route type="mix" sink="Speaker Safe"
                        sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
                        sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="BT A2DP Out"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="BT A2DP Headphones"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="BT A2DP Speaker"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
                 <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
                 <route type="mix" sink="BT SCO"
                        sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
                 <route type="mix" sink="BT SCO Headset"
diff --git a/audio/oriole/config/bluetooth_with_le_audio_policy_configuration_7_0.xml b/audio/oriole/config/bluetooth_with_le_audio_policy_configuration_7_0.xml
new file mode 100644
index 0000000..8b2af59
--- /dev/null
+++ b/audio/oriole/config/bluetooth_with_le_audio_policy_configuration_7_0.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Bluetooth Audio HAL Audio Policy Configuration file -->
+<module name="bluetooth" halVersion="2.0">
+    <mixPorts>
+        <!-- A2DP Audio Ports -->
+        <mixPort name="a2dp output" role="source" flags="AUDIO_OUTPUT_FLAG_SPATIALIZER"/>
+        <!-- Hearing AIDs Audio Ports -->
+        <mixPort name="hearing aid output" role="source">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="24000 16000"
+                     channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </mixPort>
+        <!-- Le Audio Audio Ports -->
+        <mixPort name="le audio output" role="source" flags="AUDIO_OUTPUT_FLAG_SPATIALIZER">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100 48000"
+                     channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </mixPort>
+        <mixPort name="le audio input" role="sink">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="8000 16000 24000 32000 44100 48000"
+                     channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
+            <profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
+                     samplingRates="8000 16000 24000 32000 44100 48000"
+                     channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
+            <profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
+                     samplingRates="8000 16000 24000 32000 44100 48000"
+                     channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
+        </mixPort>
+    </mixPorts>
+    <devicePorts>
+        <!-- A2DP Audio Ports -->
+        <devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100 48000 88200 96000"
+                     channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </devicePort>
+        <devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100 48000 88200 96000"
+                     channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </devicePort>
+        <devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100 48000 88200 96000"
+                     channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </devicePort>
+        <!-- Hearing AIDs Audio Ports -->
+        <devicePort tagName="BT Hearing Aid Out" type="AUDIO_DEVICE_OUT_HEARING_AID" role="sink"/>
+        <!-- BLE Audio Ports -->
+        <devicePort tagName="BLE Headset Out" type="AUDIO_DEVICE_OUT_BLE_HEADSET" role="sink"/>
+        <devicePort tagName="BLE Speaker Out" type="AUDIO_DEVICE_OUT_BLE_SPEAKER" role="sink"/>
+        <devicePort tagName="BLE Headset In" type="AUDIO_DEVICE_IN_BLE_HEADSET" role="source"/>
+    </devicePorts>
+    <routes>
+        <route type="mix" sink="BT A2DP Out"
+               sources="a2dp output"/>
+        <route type="mix" sink="BT A2DP Headphones"
+               sources="a2dp output"/>
+        <route type="mix" sink="BT A2DP Speaker"
+               sources="a2dp output"/>
+        <route type="mix" sink="BT Hearing Aid Out"
+               sources="hearing aid output"/>
+        <route type="mix" sink="BLE Headset Out"
+               sources="le audio output"/>
+        <route type="mix" sink="le audio input"
+               sources="BLE Headset In"/>
+        <route type="mix" sink="BLE Speaker Out"
+               sources="le audio output"/>
+    </routes>
+</module>
\ No newline at end of file
diff --git a/audio/oriole/config/mixer_paths.xml b/audio/oriole/config/mixer_paths.xml
index a39fcd0..d877752 100644
--- a/audio/oriole/config/mixer_paths.xml
+++ b/audio/oriole/config/mixer_paths.xml
@@ -30,6 +30,9 @@
     <ctl name="PCM Stream Wait Time in MSec" value="100"/>
     <ctl name="Voice PCM Stream Wait Time in MSec" value="500"/>
 
+    <!-- Enable it when AOC is ready to trim delay and padding -->
+    <ctl name="Gapless Offload Enable" value="1"/>
+
     <!-- TDM 0 setting -->
     <ctl name="TDM_0_RX Chan" value="Four"/>
     <ctl name="TDM_0_RX Format" value="S32_LE"/>
@@ -110,6 +113,7 @@
     <ctl name="TDM_0_RX Mixer NoHost1" value="0"/>
     <ctl name="TDM_0_RX Mixer VOIP" value="0"/>
     <ctl name="TDM_0_RX Mixer RAW" value="0"/>
+    <ctl name="TDM_0_RX Mixer IMSV" value="0"/>
 
     <ctl name="TDM_1_RX Mixer EP1" value="0"/>
     <ctl name="TDM_1_RX Mixer EP2" value="0"/>
@@ -132,6 +136,7 @@
     <ctl name="USB_RX Mixer VOIP" value="0"/>
     <ctl name="USB_RX Mixer HIFI" value="0"/>
     <ctl name="USB_RX Mixer RAW" value="0"/>
+    <ctl name="USB_RX Mixer IMSV" value="0"/>
 
     <ctl name="BT_RX Mixer EP1" value="0"/>
     <ctl name="BT_RX Mixer EP2" value="0"/>
@@ -142,6 +147,7 @@
     <ctl name="BT_RX Mixer EP7" value="0"/>
     <ctl name="BT_RX Mixer NoHost1" value="0"/>
     <ctl name="BT_RX Mixer VOIP" value="0"/>
+    <ctl name="BT_RX Mixer IMSV" value="0"/>
 
     <ctl name="INCALL_RX Mixer EP1" value="0"/>
     <ctl name="INCALL_RX Mixer EP2" value="0"/>
@@ -429,6 +435,18 @@
         <path name="compress-offload-playback" />
     </path>
 
+    <path name="immersive-playbackP">
+        <ctl name="TDM_0_RX Mixer IMSV" value="1"/>
+    </path>
+
+    <path name="immersive-playbackP bt">
+        <ctl name="BT_RX Mixer IMSV" value="1"/>
+    </path>
+
+    <path name="immersive-playbackP usb-headphone">
+        <ctl name="USB_RX Mixer IMSV" value="1"/>
+    </path>
+
     <path name="voip-playbackP">
         <ctl name="TDM_0_RX Mixer VOIP" value="1"/>
     </path>
diff --git a/audio/raven/audio-tables.mk b/audio/raven/audio-tables.mk
index 75303c1..11e20b1 100644
--- a/audio/raven/audio-tables.mk
+++ b/audio/raven/audio-tables.mk
@@ -25,7 +25,7 @@
     device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/config/sound_trigger_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_configuration.xml \
     device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
     device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/config/audio_policy_configuration_le_offload_disabled.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_le_offload_disabled.xml \
-    frameworks/av/services/audiopolicy/config/bluetooth_with_le_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration_7_0.xml
+    device/google/raviole/audio/$(AUDIO_TABLE_FOLDER)/config/bluetooth_with_le_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration_7_0.xml
 
 # AudioEffectHAL Configuration
 PRODUCT_COPY_FILES += \
diff --git a/audio/raven/config/audio_effects.xml b/audio/raven/config/audio_effects.xml
index 1718057..e35bfbd 100644
--- a/audio/raven/config/audio_effects.xml
+++ b/audio/raven/config/audio_effects.xml
@@ -10,6 +10,7 @@
         <library name="proxy" path="libeffectproxy.so"/>
         <library name="offload_effect" path="liboffloadeffect.so"/>
         <library name="haptic_generator" path="libhapticgenerator.so"/>
+        <library name="spatializer" path="libspatialaudio.so"/>
     </libraries>
     <effects>
         <effectProxy name="bassboost" library="proxy" uuid="2f0871a2-c93c-4824-9664-42eb2909f2ef">
@@ -51,6 +52,7 @@
         <effect name="ns" library="offload_effect" uuid="62ff2836-d050-43c3-9c2d-94a73dad2c64"/>
         <effect name="haptic_generator" library="haptic_generator" uuid="97c4acd1-8b82-4f2f-832e-c2fe5d7a9931"/>
         <effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/>
+        <effect name="spatializer" library="spatializer" uuid="cc4677de-ff72-11eb-9a03-0242ac130003"/>
     </effects>
     <postprocess>
     </postprocess>
diff --git a/audio/raven/config/audio_platform_configuration.xml b/audio/raven/config/audio_platform_configuration.xml
index a4232cd..35bf66f 100644
--- a/audio/raven/config/audio_platform_configuration.xml
+++ b/audio/raven/config/audio_platform_configuration.xml
@@ -182,6 +182,8 @@
         <usecase id="UC_DEEP_BUFFER_PLAYBACK" dev1="5" dyn_path="true" dsp_vol="false" mmap="false" period="20" period_num="4"/>
         <!-- dev1: voice-call downlink dev2: voice-clal uplink -->
         <usecase id="UC_VOICE_CALL" dev1="4" dev2="11"/>
+        <!-- for output with flag AUDIO_OUTPUT_SPATIALIZER -->
+        <usecase id="UC_IMMERSIVE_PLAYBACK" dev1="30" dyn_path="true" dsp_vol="false" mmap="false" period="10" period_num="3"/>
         <!-- for output with AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD, 4 * 128KB buffer -->
         <usecase id="UC_COMPRESSED_OFFLOAD_PLAYBACK" dev1="6" dyn_path="true" dsp_vol="true" mmap="false" period="131072" period_num="4" pre_proc_id="14"/>
         <!-- dev1: audio dev2: haptic -->
@@ -217,6 +219,10 @@
             <be_cfg be_id="OUT_A2DP_BE_CFG" latency="180000"/>
         </usecase>
 
+        <usecase id="UC_IMMERSIVE_PLAYBACK" type="playback">
+            <be_cfg be_id="OUT_A2DP_BE_CFG" latency="100000"/>
+        </usecase>
+
         <usecase id="UC_AUDIO_RECORD" type="capture">
             <be_cfg be_id="IN_CAMCORDER_LANDSCAPE_BE_CFG" latency="160000"/>
             <be_cfg be_id="IN_CAMCORDER_INVERT_LANDSCAPE_BE_CFG" latency="160000"/>
diff --git a/audio/raven/config/audio_policy_configuration.xml b/audio/raven/config/audio_policy_configuration.xml
index 5bd7ec8..1e27950 100644
--- a/audio/raven/config/audio_policy_configuration.xml
+++ b/audio/raven/config/audio_policy_configuration.xml
@@ -37,7 +37,7 @@
                              samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </mixPort>
                 <mixPort name="compressed_offload" role="source"
-                         flags="AUDIO_OUTPUT_FLAG_DIRECT AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD AUDIO_OUTPUT_FLAG_NON_BLOCKING">
+                         flags="AUDIO_OUTPUT_FLAG_DIRECT AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD AUDIO_OUTPUT_FLAG_NON_BLOCKING AUDIO_OUTPUT_FLAG_GAPLESS_OFFLOAD">
                     <profile name="" format="AUDIO_FORMAT_MP3"
                              samplingRates="8000 16000 24000 32000 44100 48000"
                              channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
@@ -64,6 +64,10 @@
                     <profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
                              samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </mixPort>
+                <mixPort name="immersive_out" role="source" flags="AUDIO_OUTPUT_FLAG_SPATIALIZER">
+                    <profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="incall playback" role="source"
                          flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -159,17 +163,17 @@
                 <devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
                 </devicePort>
                 <devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
                 <devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
                 <devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
@@ -196,25 +200,25 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,immersive_out"/>
                 <route type="mix" sink="Speaker Safe"
                        sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
                        sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="BT A2DP Out"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="BT A2DP Headphones"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="BT A2DP Speaker"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="BT BLE Headset"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="BT BLE Speaker"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
                 <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
                 <route type="mix" sink="BT SCO"
                        sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
                 <route type="mix" sink="BT SCO Headset"
diff --git a/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml
index c0f0677..e106936 100644
--- a/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/raven/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -64,6 +64,10 @@
                     <profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
                              samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </mixPort>
+                <mixPort name="immersive_out" role="source" flags="AUDIO_OUTPUT_FLAG_SPATIALIZER">
+                    <profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="incall playback" role="source"
                          flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -171,15 +175,15 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,immersive_out"/>
                 <route type="mix" sink="Speaker Safe"
                        sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
                        sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
                 <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
                 <route type="mix" sink="BT SCO"
                        sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
                 <route type="mix" sink="BT SCO Headset"
diff --git a/audio/raven/config/audio_policy_configuration_le_offload_disabled.xml b/audio/raven/config/audio_policy_configuration_le_offload_disabled.xml
index 95c2dbe..3c8466a 100644
--- a/audio/raven/config/audio_policy_configuration_le_offload_disabled.xml
+++ b/audio/raven/config/audio_policy_configuration_le_offload_disabled.xml
@@ -64,6 +64,10 @@
                     <profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
                              samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </mixPort>
+                <mixPort name="immersive_out" role="source" flags="AUDIO_OUTPUT_FLAG_SPATIALIZER">
+                    <profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="incall playback" role="source"
                          flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -159,17 +163,17 @@
                 <devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
                 </devicePort>
                 <devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
                 <devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
                 <devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
@@ -186,21 +190,21 @@
             <!-- route declaration, i.e. list all available sources for a given sink -->
             <routes>
                 <route type="mix" sink="Speaker"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,immersive_out"/>
                 <route type="mix" sink="Speaker Safe"
                        sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="Earpiece"
                        sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx"/>
                 <route type="mix" sink="BT A2DP Out"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="BT A2DP Headphones"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="BT A2DP Speaker"
-                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
+                       sources="primary output,deep buffer,haptic,compressed_offload,voip_rx,immersive_out"/>
                 <route type="mix" sink="USB Device Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
                 <route type="mix" sink="USB Headset Out"
-                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback"/>
+                       sources="primary output,deep buffer,haptic,raw,compressed_offload,mmap_no_irq_out,voip_rx,hifi_playback,immersive_out"/>
                 <route type="mix" sink="BT SCO"
                        sources="primary output,deep buffer,haptic,compressed_offload,voip_rx"/>
                 <route type="mix" sink="BT SCO Headset"
diff --git a/audio/raven/config/bluetooth_with_le_audio_policy_configuration_7_0.xml b/audio/raven/config/bluetooth_with_le_audio_policy_configuration_7_0.xml
new file mode 100644
index 0000000..e3f27d9
--- /dev/null
+++ b/audio/raven/config/bluetooth_with_le_audio_policy_configuration_7_0.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Bluetooth Audio HAL Audio Policy Configuration file -->
+<module name="bluetooth" halVersion="2.0">
+    <mixPorts>
+        <!-- A2DP Audio Ports -->
+        <mixPort name="a2dp output" role="source" flags="AUDIO_OUTPUT_FLAG_SPATIALIZER"/>
+        <!-- Hearing AIDs Audio Ports -->
+        <mixPort name="hearing aid output" role="source">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="24000 16000"
+                     channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </mixPort>
+        <!-- Le Audio Audio Ports -->
+        <mixPort name="le audio output" role="source" flags="AUDIO_OUTPUT_FLAG_SPATIALIZER">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100 48000"
+                     channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </mixPort>
+        <mixPort name="le audio input" role="sink">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="8000 16000 24000 32000 44100 48000"
+                     channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
+            <profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
+                     samplingRates="8000 16000 24000 32000 44100 48000"
+                     channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
+            <profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
+                     samplingRates="8000 16000 24000 32000 44100 48000"
+                     channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
+        </mixPort>
+    </mixPorts>
+    <devicePorts>
+        <!-- A2DP Audio Ports -->
+        <devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100 48000 88200 96000"
+                     channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </devicePort>
+        <devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100 48000 88200 96000"
+                     channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </devicePort>
+        <devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink">
+            <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                     samplingRates="44100 48000 88200 96000"
+                     channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+        </devicePort>
+        <!-- Hearing AIDs Audio Ports -->
+        <devicePort tagName="BT Hearing Aid Out" type="AUDIO_DEVICE_OUT_HEARING_AID" role="sink"/>
+        <!-- BLE Audio Ports -->
+        <devicePort tagName="BLE Headset Out" type="AUDIO_DEVICE_OUT_BLE_HEADSET" role="sink"/>
+        <devicePort tagName="BLE Speaker Out" type="AUDIO_DEVICE_OUT_BLE_SPEAKER" role="sink"/>
+        <devicePort tagName="BLE Headset In" type="AUDIO_DEVICE_IN_BLE_HEADSET" role="source"/>
+    </devicePorts>
+    <routes>
+        <route type="mix" sink="BT A2DP Out"
+               sources="a2dp output"/>
+        <route type="mix" sink="BT A2DP Headphones"
+               sources="a2dp output"/>
+        <route type="mix" sink="BT A2DP Speaker"
+               sources="a2dp output"/>
+        <route type="mix" sink="BT Hearing Aid Out"
+               sources="hearing aid output"/>
+        <route type="mix" sink="BLE Headset Out"
+               sources="le audio output"/>
+        <route type="mix" sink="le audio input"
+               sources="BLE Headset In"/>
+        <route type="mix" sink="BLE Speaker Out"
+               sources="le audio output"/>
+    </routes>
+</module>
diff --git a/audio/raven/config/mixer_paths.xml b/audio/raven/config/mixer_paths.xml
index a39fcd0..d877752 100644
--- a/audio/raven/config/mixer_paths.xml
+++ b/audio/raven/config/mixer_paths.xml
@@ -30,6 +30,9 @@
     <ctl name="PCM Stream Wait Time in MSec" value="100"/>
     <ctl name="Voice PCM Stream Wait Time in MSec" value="500"/>
 
+    <!-- Enable it when AOC is ready to trim delay and padding -->
+    <ctl name="Gapless Offload Enable" value="1"/>
+
     <!-- TDM 0 setting -->
     <ctl name="TDM_0_RX Chan" value="Four"/>
     <ctl name="TDM_0_RX Format" value="S32_LE"/>
@@ -110,6 +113,7 @@
     <ctl name="TDM_0_RX Mixer NoHost1" value="0"/>
     <ctl name="TDM_0_RX Mixer VOIP" value="0"/>
     <ctl name="TDM_0_RX Mixer RAW" value="0"/>
+    <ctl name="TDM_0_RX Mixer IMSV" value="0"/>
 
     <ctl name="TDM_1_RX Mixer EP1" value="0"/>
     <ctl name="TDM_1_RX Mixer EP2" value="0"/>
@@ -132,6 +136,7 @@
     <ctl name="USB_RX Mixer VOIP" value="0"/>
     <ctl name="USB_RX Mixer HIFI" value="0"/>
     <ctl name="USB_RX Mixer RAW" value="0"/>
+    <ctl name="USB_RX Mixer IMSV" value="0"/>
 
     <ctl name="BT_RX Mixer EP1" value="0"/>
     <ctl name="BT_RX Mixer EP2" value="0"/>
@@ -142,6 +147,7 @@
     <ctl name="BT_RX Mixer EP7" value="0"/>
     <ctl name="BT_RX Mixer NoHost1" value="0"/>
     <ctl name="BT_RX Mixer VOIP" value="0"/>
+    <ctl name="BT_RX Mixer IMSV" value="0"/>
 
     <ctl name="INCALL_RX Mixer EP1" value="0"/>
     <ctl name="INCALL_RX Mixer EP2" value="0"/>
@@ -429,6 +435,18 @@
         <path name="compress-offload-playback" />
     </path>
 
+    <path name="immersive-playbackP">
+        <ctl name="TDM_0_RX Mixer IMSV" value="1"/>
+    </path>
+
+    <path name="immersive-playbackP bt">
+        <ctl name="BT_RX Mixer IMSV" value="1"/>
+    </path>
+
+    <path name="immersive-playbackP usb-headphone">
+        <ctl name="USB_RX Mixer IMSV" value="1"/>
+    </path>
+
     <path name="voip-playbackP">
         <ctl name="TDM_0_RX Mixer VOIP" value="1"/>
     </path>
diff --git a/audio/slider/config/audio_policy_configuration.xml b/audio/slider/config/audio_policy_configuration.xml
index 42db5e8..cd66fbc 100644
--- a/audio/slider/config/audio_policy_configuration.xml
+++ b/audio/slider/config/audio_policy_configuration.xml
@@ -152,17 +152,17 @@
                 <devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
                 </devicePort>
                 <devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
                 <devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
                 <devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink"
-                            encodedFormats="AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
+                            encodedFormats="AUDIO_FORMAT_OPUS AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="44100 48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </devicePort>
diff --git a/bluetooth/bt_vendor_overlay.conf b/bluetooth/bt_vendor_overlay.conf
new file mode 100644
index 0000000..d5212db
--- /dev/null
+++ b/bluetooth/bt_vendor_overlay.conf
@@ -0,0 +1,3 @@
+# This is BTBCM HAL overlay configuration file.
+
+BtA2dpOffloadCap = sbc-aac-aptx-aptxhd-ldac-opus
diff --git a/conf/init.raviole.rc b/conf/init.raviole.rc
index 31ff159..1437c49 100644
--- a/conf/init.raviole.rc
+++ b/conf/init.raviole.rc
@@ -66,3 +66,11 @@
 on property:sys.retaildemo.enabled=1
     setprop persist.vendor.charge.stop.level 35
     setprop persist.vendor.charge.start.level 30
+
+# Override SF and RE uclamps to 0 on boot after being set elsewhere, for adpf cpu hints
+on property:sys.boot_completed=1
+    trigger override-sf-uclamp
+
+on override-sf-uclamp
+    write /proc/vendor_sched/rt_uclamp_min 0
+    write /proc/vendor_sched/sf_uclamp_min 0
diff --git a/device-oriole.mk b/device-oriole.mk
index df3fa54..f375829 100644
--- a/device-oriole.mk
+++ b/device-oriole.mk
@@ -60,6 +60,7 @@
 # Thermal Config
 PRODUCT_COPY_FILES += \
 	device/google/raviole/thermal_info_config_oriole.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config.json \
+	device/google/raviole/thermal_info_config_charge_oriole.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config_charge.json \
 	device/google/raviole/thermal_info_config_oriole_WHI_A.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config_WHI_A.json
 
 # Power HAL config
@@ -68,7 +69,8 @@
 
 # Bluetooth
 PRODUCT_PRODUCT_PROPERTIES += \
-    persist.bluetooth.a2dp_aac.vbr_supported=true
+    persist.bluetooth.a2dp_aac.vbr_supported=true \
+    persist.bluetooth.firmware.selection=BCM.hcd
 
 # Bluetooth Tx power caps for oriole
 PRODUCT_COPY_FILES += \
@@ -120,7 +122,7 @@
 PRODUCT_PACKAGES += \
 	NfcNci \
 	Tag \
-	android.hardware.nfc@1.2-service.st
+	android.hardware.nfc-service.st
 
 # SecureElement
 PRODUCT_PACKAGES += \
@@ -134,7 +136,6 @@
 	device/google/raviole/nfc/libse-gto-hal2.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal2.conf
 
 DEVICE_MANIFEST_FILE += \
-	device/google/raviole/nfc/manifest_nfc.xml \
 	device/google/raviole/nfc/manifest_se.xml
 
 # Vibrator HAL
@@ -213,6 +214,8 @@
 # Bluetooth HAL
 PRODUCT_PACKAGES += \
 	bt_vendor.conf
+PRODUCT_COPY_FILES += \
+	device/google/raviole/bluetooth/bt_vendor_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth/bt_vendor_overlay.conf
 
 # tetheroffload HAL
 PRODUCT_PACKAGES += \
@@ -238,6 +241,13 @@
     persist.bluetooth.le_audio_test=false
 endif
 
+# declare use of spatial audio
+PRODUCT_PROPERTY_OVERRIDES += \
+    ro.audio.spatializer_enabled=true
+
+PRODUCT_PACKAGES += \
+	libspatialaudio
+
 # Device features
 PRODUCT_COPY_FILES += \
     frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml
@@ -251,3 +261,7 @@
     $(PRODUCT_COPY_FILES)
 
 PRODUCT_RESTRICT_VENDOR_FILES := false
+
+# Enable adpf cpu hint session for SurfaceFlinger
+PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
+    debug.sf.enable_adpf_cpu_hint=true
diff --git a/device-raven.mk b/device-raven.mk
index cc0b350..15ea022 100644
--- a/device-raven.mk
+++ b/device-raven.mk
@@ -41,7 +41,6 @@
 endif
 
 ifeq ($(filter factory_raven, $(TARGET_PRODUCT)),)
-include device/google/gs101/uwb/uwb.mk
 include device/google/raviole/uwb/uwb_calibration.mk
 endif
 
@@ -68,7 +67,8 @@
 
 # Thermal Config
 PRODUCT_COPY_FILES += \
-	device/google/raviole/thermal_info_config_raven.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config.json
+	device/google/raviole/thermal_info_config_raven.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config.json \
+	device/google/raviole/thermal_info_config_charge_raven.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config_charge.json
 
 # Power HAL config
 PRODUCT_COPY_FILES += \
@@ -76,7 +76,8 @@
 
 # Bluetooth
 PRODUCT_PRODUCT_PROPERTIES += \
-    persist.bluetooth.a2dp_aac.vbr_supported=true
+    persist.bluetooth.a2dp_aac.vbr_supported=true \
+    persist.bluetooth.firmware.selection=BCM.hcd
 
 # Bluetooth Tx power caps for raven
 PRODUCT_COPY_FILES += \
@@ -108,7 +109,7 @@
 	device/google/raviole/raven/display_colordata_dev_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_dev_cal0.pb
 
 #config of display brightness dimming
-PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.brightness.dimming.usage=1
+PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.0.brightness.dimming.usage=1
 
 # NFC
 PRODUCT_COPY_FILES += \
@@ -132,7 +133,7 @@
 PRODUCT_PACKAGES += \
 	NfcNci \
 	Tag \
-	android.hardware.nfc@1.2-service.st
+	android.hardware.nfc-service.st
 
 # SecureElement
 PRODUCT_PACKAGES += \
@@ -146,7 +147,6 @@
 	device/google/raviole/nfc/libse-gto-hal2.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal2.conf
 
 DEVICE_MANIFEST_FILE += \
-	device/google/raviole/nfc/manifest_nfc.xml \
 	device/google/raviole/nfc/manifest_se.xml
 
 
@@ -227,6 +227,8 @@
 # Bluetooth HAL
 PRODUCT_PACKAGES += \
 	bt_vendor.conf
+PRODUCT_COPY_FILES += \
+	device/google/raviole/bluetooth/bt_vendor_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth/bt_vendor_overlay.conf
 
 # tetheroffload HAL
 PRODUCT_PACKAGES += \
@@ -252,6 +254,13 @@
     persist.bluetooth.le_audio_test=false
 endif
 
+# declare use of spatial audio
+PRODUCT_PROPERTY_OVERRIDES += \
+    ro.audio.spatializer_enabled=true
+
+PRODUCT_PACKAGES += \
+	libspatialaudio
+
 # Device features
 PRODUCT_COPY_FILES += \
     frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml
@@ -265,3 +274,7 @@
     $(PRODUCT_COPY_FILES)
 
 PRODUCT_RESTRICT_VENDOR_FILES := false
+
+# Enable adpf cpu hint session for SurfaceFlinger
+PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
+    debug.sf.enable_adpf_cpu_hint=true
diff --git a/device-slider.mk b/device-slider.mk
index bba1e52..a1662de 100644
--- a/device-slider.mk
+++ b/device-slider.mk
@@ -84,7 +84,7 @@
 PRODUCT_PACKAGES += \
 	NfcNci \
 	Tag \
-	android.hardware.nfc@1.2-service.st
+	android.hardware.nfc-service.st
 
 # SecureElement
 PRODUCT_PACKAGES += \
@@ -97,7 +97,6 @@
 	device/google/raviole/nfc/libse-gto-hal2.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal2.conf
 
 DEVICE_MANIFEST_FILE += \
-	device/google/raviole/nfc/manifest_nfc.xml \
 	device/google/raviole/nfc/manifest_se.xml
 
 # PowerStats HAL
diff --git a/device-whitefin.mk b/device-whitefin.mk
index 6378046..df3ce52 100644
--- a/device-whitefin.mk
+++ b/device-whitefin.mk
@@ -76,10 +76,7 @@
 PRODUCT_PACKAGES += \
 	NfcNci \
 	Tag \
-	android.hardware.nfc@1.2-service.st
-
-DEVICE_MANIFEST_FILE += \
-	device/google/raviole/nfc/manifest_nfc.xml
+	android.hardware.nfc-service.st
 
 # PowerStats HAL
 PRODUCT_SOONG_NAMESPACES += device/google/raviole/powerstats/whitefin
diff --git a/init.insmod.oriole.cfg b/init.insmod.oriole.cfg
index 8d7ce06..6617a28 100644
--- a/init.insmod.oriole.cfg
+++ b/init.insmod.oriole.cfg
@@ -12,3 +12,5 @@
 
 # All device specific modules loaded
 setprop|vendor.device.modules.ready
+setprop|vendor.all.modules.ready
+setprop|vendor.all.devices.ready
diff --git a/init.insmod.raven.cfg b/init.insmod.raven.cfg
index cdbf3f7..d12fc88 100644
--- a/init.insmod.raven.cfg
+++ b/init.insmod.raven.cfg
@@ -11,3 +11,5 @@
 
 # All device specific modules loaded
 setprop|vendor.device.modules.ready
+setprop|vendor.all.modules.ready
+setprop|vendor.all.devices.ready
diff --git a/init.insmod.slider.cfg b/init.insmod.slider.cfg
index a877273..89014ba 100644
--- a/init.insmod.slider.cfg
+++ b/init.insmod.slider.cfg
@@ -19,3 +19,5 @@
 
 # All device specific modules loaded
 setprop|vendor.device.modules.ready
+setprop|vendor.all.modules.ready
+setprop|vendor.all.devices.ready
diff --git a/init.insmod.whitefin.cfg b/init.insmod.whitefin.cfg
index aa49c61..e8f3444 100644
--- a/init.insmod.whitefin.cfg
+++ b/init.insmod.whitefin.cfg
@@ -13,3 +13,5 @@
 
 # All device specific modules loaded
 setprop|vendor.device.modules.ready
+setprop|vendor.all.modules.ready
+setprop|vendor.all.devices.ready
diff --git a/nfc/libnfc-hal-st-debug.conf b/nfc/libnfc-hal-st-debug.conf
index 5fdaf5e..3b3e1ee 100644
--- a/nfc/libnfc-hal-st-debug.conf
+++ b/nfc/libnfc-hal-st-debug.conf
@@ -60,8 +60,8 @@
 NCI_HAL_MODULE="nfc_nci.st21nfc"
 
 ###############################################################################
-# White list to be set at startup.
-DEVICE_HOST_WHITE_LIST={02:C0}
+# Allow list to be set at startup.
+DEVICE_HOST_ALLOW_LIST={02:C0}
 
 ###############################################################################
 # BAIL OUT value for P2P
diff --git a/nfc/libnfc-hal-st-disable.conf b/nfc/libnfc-hal-st-disable.conf
index 2b455df..165665e 100644
--- a/nfc/libnfc-hal-st-disable.conf
+++ b/nfc/libnfc-hal-st-disable.conf
@@ -64,8 +64,8 @@
 NCI_HAL_MODULE="nfc_nci.st21nfc"
 
 ###############################################################################
-# White list to be set at startup.
-DEVICE_HOST_WHITE_LIST={02:C0}
+# Allow list to be set at startup.
+DEVICE_HOST_ALLOW_LIST={02:C0}
 
 ###############################################################################
 # BAIL OUT value for P2P
diff --git a/nfc/libnfc-hal-st.conf b/nfc/libnfc-hal-st.conf
index 0035a70..b7599c7 100644
--- a/nfc/libnfc-hal-st.conf
+++ b/nfc/libnfc-hal-st.conf
@@ -60,8 +60,8 @@
 NCI_HAL_MODULE="nfc_nci.st21nfc"
 
 ###############################################################################
-# White list to be set at startup.
-DEVICE_HOST_WHITE_LIST={02:C0}
+# Allow list to be set at startup.
+DEVICE_HOST_ALLOW_LIST={02:C0}
 
 ###############################################################################
 # BAIL OUT value for P2P
diff --git a/oriole/BoardConfig.mk b/oriole/BoardConfig.mk
index 1292d4a..dc1db0c 100644
--- a/oriole/BoardConfig.mk
+++ b/oriole/BoardConfig.mk
@@ -16,13 +16,15 @@
 ifdef PHONE_CAR_BOARD_PRODUCT
   include device/google_car/$(PHONE_CAR_BOARD_PRODUCT)/BoardConfig.mk
 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 device/google/gs101/wifi/BoardConfig-wifi.mk
-  -include vendor/google_devices/gs101/prebuilts/BoardConfigVendor.mk
-  -include vendor/google_devices/oriole/proprietary/BoardConfigVendor.mk
 endif
+
+TARGET_BOARD_INFO_FILE := device/google/raviole/board-info.txt
+TARGET_BOOTLOADER_BOARD_NAME := oriole
+USES_DEVICE_GOOGLE_RAVIOLE := true
+BOARD_KERNEL_CMDLINE += disable_dma32=on
+
+include device/google/gs101/BoardConfig-common.mk
+include device/google/gs101/wifi/BoardConfig-wifi.mk
+-include vendor/google_devices/gs101/prebuilts/BoardConfigVendor.mk
+-include vendor/google_devices/oriole/proprietary/BoardConfigVendor.mk
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 ad976ac..dcb4e39 100644
--- a/oriole/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/oriole/overlay/frameworks/base/core/res/res/values/config.xml
@@ -173,7 +173,7 @@
          when adapting to brighter or darker environments.  This parameter controls how quickly
          brightness changes occur in response to an observed change in light level that exceeds the
          hysteresis threshold. -->
-    <integer name="config_autoBrightnessBrighteningLightDebounce">2000</integer>
+    <integer name="config_autoBrightnessBrighteningLightDebounce">1000</integer>
     <integer name="config_autoBrightnessDarkeningLightDebounce">4000</integer>
 
     <!-- Type of the udfps long press sensor. Empty if long press is not supported. -->
@@ -232,73 +232,94 @@
     <!-- the number of the max cached processes in the system. -->
     <integer name="config_customizedMaxCachedProcesses">64</integer>
 
-    <integer-array name="config_ambientThresholdLevels">
-        <item>1</item>
-        <item>2</item>
-        <item>3</item>
-        <item>4</item>
-        <item>5</item>
-        <item>6</item>
-        <item>7</item>
-        <item>8</item>
-        <item>9</item>
-        <item>10</item>
-        <item>20</item>
-        <item>30</item>
-        <item>40</item>
-        <item>50</item>
-        <item>60</item>
-        <item>70</item>
-        <item>80</item>
-        <item>90</item>
-        <item>100</item>
-    </integer-array>
+<integer-array name="config_ambientThresholdLevels">
+    <item>2</item>
+    <item>3</item>
+    <item>4</item>
+    <item>5</item>
+    <item>6</item>
+    <item>7</item>
+    <item>8</item>
+    <item>9</item>
+    <item>10</item>
+    <item>20</item>
+    <item>30</item>
+    <item>40</item>
+    <item>50</item>
+    <item>60</item>
+    <item>70</item>
+    <item>80</item>
+    <item>90</item>
+    <item>100</item>
+    <item>200</item>
+    <item>300</item>
+    <item>400</item>
+    <item>500</item>
+    <item>1000</item>
+    <item>2000</item>
+    <item>3000</item>
+    <item>4000</item>
+</integer-array>
 
-    <integer-array name="config_ambientBrighteningThresholds">
-        <item>11373</item>
-        <item>5000</item>
-        <item>4333</item>
-        <item>3666</item>
-        <item>3000</item>
-        <item>2760</item>
-        <item>2520</item>
-        <item>2280</item>
-        <item>2040</item>
-        <item>1800</item>
-        <item>800</item>
-        <item>527</item>
-        <item>500</item>
-        <item>470</item>
-        <item>396</item>
-        <item>322</item>
-        <item>248</item>
-        <item>174</item>
-        <item>99</item>
-        <item>99</item>
-    </integer-array>
+<integer-array name="config_ambientBrighteningThresholds">
+    <item>5186</item>
+    <item>4333</item>
+    <item>3666</item>
+    <item>2999</item>
+    <item>2759</item>
+    <item>2519</item>
+    <item>2279</item>
+    <item>2039</item>
+    <item>1799</item>
+    <item>799</item>
+    <item>527</item>
+    <item>499</item>
+    <item>470</item>
+    <item>517</item>
+    <item>565</item>
+    <item>612</item>
+    <item>660</item>
+    <item>708</item>
+    <item>742</item>
+    <item>636</item>
+    <item>582</item>
+    <item>549</item>
+    <item>369</item>
+    <item>294</item>
+    <item>269</item>
+    <item>220</item>
+    <item>220</item>
+</integer-array>
 
-    <integer-array name="config_ambientDarkeningThresholds">
-        <item>853</item>
-        <item>700</item>
-        <item>683</item>
-        <item>666</item>
-        <item>650</item>
-        <item>640</item>
-        <item>630</item>
-        <item>620</item>
-        <item>610</item>
-        <item>600</item>
-        <item>500</item>
-        <item>500</item>
-        <item>440</item>
-        <item>385</item>
-        <item>348</item>
-        <item>311</item>
-        <item>274</item>
-        <item>237</item>
-        <item>200</item>
-        <item>200</item>
-    </integer-array>
+<integer-array name="config_ambientDarkeningThresholds">
+    <item>525</item>
+    <item>683</item>
+    <item>666</item>
+    <item>650</item>
+    <item>640</item>
+    <item>630</item>
+    <item>620</item>
+    <item>610</item>
+    <item>600</item>
+    <item>500</item>
+    <item>500</item>
+    <item>440</item>
+    <item>385</item>
+    <item>382</item>
+    <item>379</item>
+    <item>376</item>
+    <item>373</item>
+    <item>371</item>
+    <item>367</item>
+    <item>387</item>
+    <item>397</item>
+    <item>403</item>
+    <item>380</item>
+    <item>345</item>
+    <item>333</item>
+    <item>283</item>
+    <item>283</item>
+</integer-array>
 
     <!-- Boolean indicating if restoring network selection should be skipped -->
     <!-- The restoring is handled by modem if it is true -->
diff --git a/oriole/overlay/frameworks/base/core/res/res/xml/power_profile.xml b/oriole/overlay/frameworks/base/core/res/res/xml/power_profile.xml
index c4e23c2..e878d40 100644
--- a/oriole/overlay/frameworks/base/core/res/res/xml/power_profile.xml
+++ b/oriole/overlay/frameworks/base/core/res/res/xml/power_profile.xml
@@ -170,15 +170,15 @@
     <item name="audio">75</item>
 
     <!-- Cellular modem related values.-->
-    <item name="modem.controller.sleep">0</item>
-    <item name="modem.controller.idle">156</item>
-    <item name="modem.controller.rx">145</item>
+    <item name="modem.controller.sleep">2</item>
+    <item name="modem.controller.idle">3.5</item>
+    <item name="modem.controller.rx">198</item>
     <array name="modem.controller.tx"> <!-- Strength 0 to 4 -->
-        <value>153</value>
-        <value>212</value>
-        <value>292</value>
-        <value>359</value>
-        <value>471</value>
+        <value>223</value>
+        <value>243</value>
+        <value>298</value>
+        <value>573</value>
+        <value>668</value>
     </array>
     <item name="modem.controller.voltage">3700</item>
 
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 61f284d..2e0c18b 100644
--- a/oriole/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
+++ b/oriole/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
@@ -52,5 +52,8 @@
 
     <!-- Alpha in duration in ms for the auth ripple to become fully vislble. If set to 0, it is immediately visible. -->
     <integer name="auth_ripple_alpha_in_duration">0</integer>
+
+    <!-- Offset should not be more than 1mm -->
+    <dimen name="udfps_burn_in_offset_y">16px</dimen>
 </resources>
 
diff --git a/powerhint-oriole.json b/powerhint-oriole.json
index a6934b2..6114e8a 100644
--- a/powerhint-oriole.json
+++ b/powerhint-oriole.json
@@ -144,9 +144,7 @@
       "Path": "/proc/vendor_sched/ta_uclamp_min",
       "Values": [
         "553",
-        "185",
-        "1",
-        "55"
+        "1"
       ],
       "ResetOnInit": true
     },
@@ -160,16 +158,6 @@
       "ResetOnInit": true
     },
     {
-      "Name": "SFUClampBoost",
-      "Path": "/proc/vendor_sched/sf_uclamp_min",
-      "Values": [
-        "161",
-        "85",
-        "39"
-      ],
-      "ResetOnInit": true
-    },
-    {
       "Name": "MLUclampBoost",
       "Path": "/proc/vendor_sched/nnapi_uclamp_min",
       "Values": [
@@ -225,15 +213,6 @@
       "ResetOnInit": true
     },
     {
-      "Name": "RestrictedCpuset",
-      "Path": "/dev/cpuset/restricted/cpus",
-      "Values": [
-        "0-3",
-        "0-7"
-      ],
-      "ResetOnInit": false
-    },
-    {
       "Name": "CDHighCpusetCpus",
       "Path": "/dev/cpuset/camera-daemon-high-group/cpus",
       "Values": [
@@ -483,16 +462,32 @@
         "1"
       ],
       "DefaultIndex": 0
+    },
+    {
+      "Name": "Dex2oatThreads",
+      "Path": "vendor.powerhal.dalvik.vm.dex2oat-threads",
+      "Values": [
+        "1",
+        "2",
+        "4",
+        "6",
+        "8"
+      ],
+      "Type": "Property"
+    },
+    {
+      "Name": "Dex2oatCPUSet",
+      "Path": "vendor.powerhal.dalvik.vm.dex2oat-cpu-set",
+      "Values": [
+        "0,1,2,3",
+        "0,1,2,3,4,5",
+        "0,1,2,3,4,5,6,7"
+      ],
+      "Type": "Property"
     }
   ],
   "Actions": [
     {
-      "PowerHint": "INTERACTION",
-      "Node": "SFUClampBoost",
-      "Duration": 5000,
-      "Value": "85"
-    },
-    {
       "PowerHint": "LAUNCH",
       "Node": "UClampThreshold",
       "Duration": 5000,
@@ -512,12 +507,6 @@
     },
     {
       "PowerHint": "LAUNCH",
-      "Node": "SFUClampBoost",
-      "Duration": 5000,
-      "Value": "85"
-    },
-    {
-      "PowerHint": "LAUNCH",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 5000,
       "Value": "9999999"
@@ -1288,71 +1277,19 @@
       "PowerHint": "REFRESH_90FPS",
       "Node": "TAUClampBoost",
       "Duration": 0,
-      "Value": "55"
+      "Value": "1"
     },
     {
       "PowerHint": "REFRESH_60FPS",
       "Node": "TAUClampBoost",
       "Duration": 0,
-      "Value": "55"
-    },
-    {
-      "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Node": "TAUClampBoost",
-      "Duration": 0,
       "Value": "1"
     },
     {
       "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Type": "MaskHint",
-      "Value": "BOOST_DISPLAY"
-    },
-    {
-      "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Type": "EndHint",
-      "Value": "BOOST_90HZ"
-    },
-    {
-      "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Type": "EndHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "BOOST_DISPLAY",
-      "Type": "DoHint",
-      "Value": "BOOST_90HZ"
-    },
-    {
-      "PowerHint": "BOOST_DISPLAY",
-      "Type": "DoHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "INTERACTION",
-      "Type": "DoHint",
-      "Value": "BOOST_DISPLAY"
-    },
-    {
-      "PowerHint": "BOOST_90HZ",
       "Node": "TAUClampBoost",
-      "Duration": 200,
-      "Value": "185"
-    },
-    {
-      "PowerHint": "BOOST_60HZ",
-      "Node": "TAUClampBoost",
-      "Duration": 200,
-      "Value": "185"
-    },
-    {
-      "PowerHint": "REFRESH_90FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "REFRESH_60FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_90HZ"
+      "Duration": 0,
+      "Value": "1"
     },
     {
       "PowerHint": "DISPLAY_IDLE",
@@ -1374,16 +1311,6 @@
     {
       "PowerHint": "DISPLAY_IDLE",
       "Type": "EndHint",
-      "Value": "BOOST_90HZ"
-    },
-    {
-      "PowerHint": "DISPLAY_IDLE",
-      "Type": "EndHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "DISPLAY_IDLE",
-      "Type": "EndHint",
       "Value": "DISPLAY_UPDATE_IMMINENT"
     },
     {
@@ -1417,6 +1344,138 @@
       "Value": "400000"
     },
     {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "PMU_POLL",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "BigControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "MidControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "LittleControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "G3dControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "BigSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "MidSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "LittleSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "G3dSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "Dex2oatThreads",
+      "Duration": 0,
+      "Value": "6"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "Dex2oatCPUSet",
+      "Duration": 0,
+      "Value": "0,1,2,3,4,5"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "PMU_POLL",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "BigControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "MidControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "LittleControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "G3dControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "BigSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "MidSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "LittleSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "G3dSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "Dex2oatThreads",
+      "Duration": 0,
+      "Value": "4"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "Dex2oatCPUSet",
+      "Duration": 0,
+      "Value": "0,1,2,3"
+    },
+    {
       "PowerHint": "THERMAL_VIRTUAL-SKIN_SEVERE",
       "Node": "PMU_POLL",
       "Duration": 0,
@@ -1471,6 +1530,168 @@
       "Value": "60000"
     },
     {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_SEVERE",
+      "Node": "Dex2oatThreads",
+      "Duration": 0,
+      "Value": "4"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_SEVERE",
+      "Node": "Dex2oatCPUSet",
+      "Duration": 0,
+      "Value": "0,1,2,3"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "PMU_POLL",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "BigControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "MidControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "LittleControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "G3dControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "BigSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "MidSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "LittleSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "G3dSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "Dex2oatThreads",
+      "Duration": 0,
+      "Value": "2"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "Dex2oatCPUSet",
+      "Duration": 0,
+      "Value": "0,1,2,3"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "PMU_POLL",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "CPU_LITTLE_TSKIN_BYPASS",
+      "Duration": 0,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "CPU_MID_TSKIN_BYPASS",
+      "Duration": 0,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "CPU_BIG_TSKIN_BYPASS",
+      "Duration": 0,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "BigControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "MidControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "LittleControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "G3dControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "BigSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "MidSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "LittleSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "G3dSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "Dex2oatThreads",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "Dex2oatCPUSet",
+      "Duration": 0,
+      "Value": "0,1,2,3"
+    },
+    {
       "PowerHint": "FACE_UNLOCK_BOOST",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 1000,
@@ -1543,78 +1764,6 @@
       "Value": "1"
     },
     {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "PMU_POLL",
-      "Duration": 0,
-      "Value": "1"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "CPU_LITTLE_TSKIN_BYPASS",
-      "Duration": 0,
-      "Value": "0"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "CPU_MID_TSKIN_BYPASS",
-      "Duration": 0,
-      "Value": "0"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "CPU_BIG_TSKIN_BYPASS",
-      "Duration": 0,
-      "Value": "0"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "BigControlTempSet",
-      "Duration": 0,
-      "Value": "80000"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "MidControlTempSet",
-      "Duration": 0,
-      "Value": "80000"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "LittleControlTempSet",
-      "Duration": 0,
-      "Value": "80000"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "G3dControlTempSet",
-      "Duration": 0,
-      "Value": "80000"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "BigSwitchOnTempSet",
-      "Duration": 0,
-      "Value": "60000"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "MidSwitchOnTempSet",
-      "Duration": 0,
-      "Value": "60000"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "LittleSwitchOnTempSet",
-      "Duration": 0,
-      "Value": "60000"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "G3dSwitchOnTempSet",
-      "Duration": 0,
-      "Value": "60000"
-    },
-    {
       "PowerHint": "ML_ACC",
       "Node": "MLUclampBoost",
       "Duration": 2000,
@@ -1625,24 +1774,6 @@
       "Node": "PMQoSCpuDmaLatency",
       "Duration": 2000,
       "Value": "44"
-    },
-    {
-      "PowerHint": "DEVICE_IDLE",
-      "Node": "RestrictedCpuset",
-      "Duration": 0,
-      "Value": "0-3"
-    },
-    {
-      "PowerHint": "DISPLAY_INACTIVE",
-      "Node": "RestrictedCpuset",
-      "Duration": 0,
-      "Value": "0-3"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
-      "Node": "PMU_POLL",
-      "Duration": 0,
-      "Value": "1"
     }
   ],
   "AdpfConfig": [
diff --git a/powerhint-raven.json b/powerhint-raven.json
index 3b9b980..18d1324 100644
--- a/powerhint-raven.json
+++ b/powerhint-raven.json
@@ -143,9 +143,7 @@
       "Path": "/proc/vendor_sched/ta_uclamp_min",
       "Values": [
         "553",
-        "185",
-        "1",
-        "55"
+        "1"
       ],
       "ResetOnInit": true
     },
@@ -159,16 +157,6 @@
       "ResetOnInit": true
     },
     {
-      "Name": "SFUClampBoost",
-      "Path": "/proc/vendor_sched/sf_uclamp_min",
-      "Values": [
-        "161",
-        "85",
-        "39"
-      ],
-      "ResetOnInit": true
-    },
-    {
       "Name": "MLUclampBoost",
       "Path": "/proc/vendor_sched/nnapi_uclamp_min",
       "Values": [
@@ -224,15 +212,6 @@
       "ResetOnInit": true
     },
     {
-      "Name": "RestrictedCpuset",
-      "Path": "/dev/cpuset/restricted/cpus",
-      "Values": [
-        "0-3",
-        "0-7"
-      ],
-      "ResetOnInit": false
-    },
-    {
       "Name": "CDHighCpusetCpus",
       "Path": "/dev/cpuset/camera-daemon-high-group/cpus",
       "Values": [
@@ -482,16 +461,32 @@
         "1"
       ],
       "DefaultIndex": 0
+    },
+    {
+      "Name": "Dex2oatThreads",
+      "Path": "vendor.powerhal.dalvik.vm.dex2oat-threads",
+      "Values": [
+        "1",
+        "2",
+        "4",
+        "6",
+        "8"
+      ],
+      "Type": "Property"
+    },
+    {
+      "Name": "Dex2oatCPUSet",
+      "Path": "vendor.powerhal.dalvik.vm.dex2oat-cpu-set",
+      "Values": [
+        "0,1,2,3",
+        "0,1,2,3,4,5",
+        "0,1,2,3,4,5,6,7"
+      ],
+      "Type": "Property"
     }
   ],
   "Actions": [
     {
-      "PowerHint": "INTERACTION",
-      "Node": "SFUClampBoost",
-      "Duration": 5000,
-      "Value": "85"
-    },
-    {
       "PowerHint": "LAUNCH",
       "Node": "UClampThreshold",
       "Duration": 5000,
@@ -504,12 +499,6 @@
       "Value": "0"
     },
     {
-      "PowerHint": "LAUNCH_120FPS",
-      "Node": "SFUClampBoost",
-      "Duration": 1000,
-      "Value": "161"
-    },
-    {
       "PowerHint": "LAUNCH",
       "Node": "FGPreferIdle",
       "Duration": 5000,
@@ -522,12 +511,6 @@
     },
     {
       "PowerHint": "LAUNCH",
-      "Node": "SFUClampBoost",
-      "Duration": 5000,
-      "Value": "85"
-    },
-    {
-      "PowerHint": "LAUNCH",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 5000,
       "Value": "9999999"
@@ -1280,13 +1263,13 @@
       "PowerHint": "REFRESH_120FPS",
       "Node": "TAUClampBoost",
       "Duration": 0,
-      "Value": "55"
+      "Value": "1"
     },
     {
       "PowerHint": "REFRESH_60FPS",
       "Node": "TAUClampBoost",
       "Duration": 0,
-      "Value": "55"
+      "Value": "1"
     },
     {
       "PowerHint": "REFRESH_60FPS",
@@ -1300,58 +1283,6 @@
       "Value": "1"
     },
     {
-      "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Type": "MaskHint",
-      "Value": "BOOST_DISPLAY"
-    },
-    {
-      "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Type": "EndHint",
-      "Value": "BOOST_120HZ"
-    },
-    {
-      "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Type": "EndHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "BOOST_DISPLAY",
-      "Type": "DoHint",
-      "Value": "BOOST_120HZ"
-    },
-    {
-      "PowerHint": "BOOST_DISPLAY",
-      "Type": "DoHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "INTERACTION",
-      "Type": "DoHint",
-      "Value": "BOOST_DISPLAY"
-    },
-    {
-      "PowerHint": "BOOST_120HZ",
-      "Node": "TAUClampBoost",
-      "Duration": 200,
-      "Value": "185"
-    },
-    {
-      "PowerHint": "BOOST_60HZ",
-      "Node": "TAUClampBoost",
-      "Duration": 200,
-      "Value": "185"
-    },
-    {
-      "PowerHint": "REFRESH_120FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "REFRESH_60FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_120HZ"
-    },
-    {
       "PowerHint": "DISPLAY_IDLE",
       "Node": "FGPreferIdle",
       "Duration": 0,
@@ -1371,16 +1302,6 @@
     {
       "PowerHint": "DISPLAY_IDLE",
       "Type": "EndHint",
-      "Value": "BOOST_120HZ"
-    },
-    {
-      "PowerHint": "DISPLAY_IDLE",
-      "Type": "EndHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "DISPLAY_IDLE",
-      "Type": "EndHint",
       "Value": "DISPLAY_UPDATE_IMMINENT"
     },
     {
@@ -1414,6 +1335,138 @@
       "Value": "400000"
     },
     {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "PMU_POLL",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "BigControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "MidControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "LittleControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "G3dControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "BigSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "MidSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "LittleSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "G3dSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "Dex2oatThreads",
+      "Duration": 0,
+      "Value": "6"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
+      "Node": "Dex2oatCPUSet",
+      "Duration": 0,
+      "Value": "0,1,2,3,4,5"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "PMU_POLL",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "BigControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "MidControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "LittleControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "G3dControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "BigSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "MidSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "LittleSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "G3dSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "Dex2oatThreads",
+      "Duration": 0,
+      "Value": "4"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_MODERATE",
+      "Node": "Dex2oatCPUSet",
+      "Duration": 0,
+      "Value": "0,1,2,3"
+    },
+    {
       "PowerHint": "THERMAL_VIRTUAL-SKIN_SEVERE",
       "Node": "PMU_POLL",
       "Duration": 0,
@@ -1468,6 +1521,168 @@
       "Value": "60000"
     },
     {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_SEVERE",
+      "Node": "Dex2oatThreads",
+      "Duration": 0,
+      "Value": "4"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_SEVERE",
+      "Node": "Dex2oatCPUSet",
+      "Duration": 0,
+      "Value": "0,1,2,3"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "PMU_POLL",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "BigControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "MidControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "LittleControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "G3dControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "BigSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "MidSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "LittleSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "G3dSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "Dex2oatThreads",
+      "Duration": 0,
+      "Value": "2"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_CRITICAL",
+      "Node": "Dex2oatCPUSet",
+      "Duration": 0,
+      "Value": "0,1,2,3"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "PMU_POLL",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "CPU_LITTLE_TSKIN_BYPASS",
+      "Duration": 0,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "CPU_MID_TSKIN_BYPASS",
+      "Duration": 0,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "CPU_BIG_TSKIN_BYPASS",
+      "Duration": 0,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "BigControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "MidControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "LittleControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "G3dControlTempSet",
+      "Duration": 0,
+      "Value": "80000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "BigSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "MidSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "LittleSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "G3dSwitchOnTempSet",
+      "Duration": 0,
+      "Value": "60000"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "Dex2oatThreads",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
+      "Node": "Dex2oatCPUSet",
+      "Duration": 0,
+      "Value": "0,1,2,3"
+    },
+    {
       "PowerHint": "FACE_UNLOCK_BOOST",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 1000,
@@ -1540,78 +1755,6 @@
       "Value": "1"
     },
     {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "PMU_POLL",
-      "Duration": 0,
-      "Value": "1"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "CPU_LITTLE_TSKIN_BYPASS",
-      "Duration": 0,
-      "Value": "0"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "CPU_MID_TSKIN_BYPASS",
-      "Duration": 0,
-      "Value": "0"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "CPU_BIG_TSKIN_BYPASS",
-      "Duration": 0,
-      "Value": "0"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "BigControlTempSet",
-      "Duration": 0,
-      "Value": "80000"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "MidControlTempSet",
-      "Duration": 0,
-      "Value": "80000"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "LittleControlTempSet",
-      "Duration": 0,
-      "Value": "80000"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "G3dControlTempSet",
-      "Duration": 0,
-      "Value": "80000"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "BigSwitchOnTempSet",
-      "Duration": 0,
-      "Value": "60000"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "MidSwitchOnTempSet",
-      "Duration": 0,
-      "Value": "60000"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "LittleSwitchOnTempSet",
-      "Duration": 0,
-      "Value": "60000"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_EMERGENCY",
-      "Node": "G3dSwitchOnTempSet",
-      "Duration": 0,
-      "Value": "60000"
-    },
-    {
       "PowerHint": "ML_ACC",
       "Node": "MLUclampBoost",
       "Duration": 2000,
@@ -1622,24 +1765,6 @@
       "Node": "PMQoSCpuDmaLatency",
       "Duration": 2000,
       "Value": "44"
-    },
-    {
-      "PowerHint": "DEVICE_IDLE",
-      "Node": "RestrictedCpuset",
-      "Duration": 0,
-      "Value": "0-3"
-    },
-    {
-      "PowerHint": "DISPLAY_INACTIVE",
-      "Node": "RestrictedCpuset",
-      "Duration": 0,
-      "Value": "0-3"
-    },
-    {
-      "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
-      "Node": "PMU_POLL",
-      "Duration": 0,
-      "Value": "1"
     }
   ],
   "AdpfConfig": [
diff --git a/powerhint-slider.json b/powerhint-slider.json
index 1e2df3f..26af88f 100644
--- a/powerhint-slider.json
+++ b/powerhint-slider.json
@@ -143,12 +143,7 @@
       "Path": "/proc/vendor_sched/ta_uclamp_min",
       "Values": [
         "553",
-        "185",
-        "129",
-        "56",
         "1",
-        "183",
-        "128",
         "55"
       ],
       "ResetOnInit": true
@@ -1247,94 +1242,6 @@
       "Value": "1"
     },
     {
-      "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Type": "MaskHint",
-      "Value": "BOOST_DISPLAY"
-    },
-    {
-      "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Type": "EndHint",
-      "Value": "BOOST_120HZ"
-    },
-    {
-      "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Type": "EndHint",
-      "Value": "BOOST_90HZ"
-    },
-    {
-      "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Type": "EndHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "BOOST_DISPLAY",
-      "Type": "DoHint",
-      "Value": "BOOST_120HZ"
-    },
-    {
-      "PowerHint": "BOOST_DISPLAY",
-      "Type": "DoHint",
-      "Value": "BOOST_90HZ"
-    },
-    {
-      "PowerHint": "BOOST_DISPLAY",
-      "Type": "DoHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "INTERACTION",
-      "Type": "DoHint",
-      "Value": "BOOST_DISPLAY"
-    },
-    {
-      "PowerHint": "BOOST_120HZ",
-      "Node": "TAUClampBoost",
-      "Duration": 200,
-      "Value": "185"
-    },
-    {
-      "PowerHint": "BOOST_90HZ",
-      "Node": "TAUClampBoost",
-      "Duration": 200,
-      "Value": "129"
-    },
-    {
-      "PowerHint": "BOOST_60HZ",
-      "Node": "TAUClampBoost",
-      "Duration": 200,
-      "Value": "129"
-    },
-    {
-      "PowerHint": "REFRESH_120FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "REFRESH_120FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_90HZ"
-    },
-    {
-      "PowerHint": "REFRESH_90FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "REFRESH_90FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_120HZ"
-    },
-    {
-      "PowerHint": "REFRESH_60FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_90HZ"
-    },
-    {
-      "PowerHint": "REFRESH_60FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_120HZ"
-    },
-    {
       "PowerHint": "DISPLAY_IDLE",
       "Node": "FGPreferIdle",
       "Duration": 0,
@@ -1354,21 +1261,6 @@
     {
       "PowerHint": "DISPLAY_IDLE",
       "Type": "EndHint",
-      "Value": "BOOST_120HZ"
-    },
-    {
-      "PowerHint": "DISPLAY_IDLE",
-      "Type": "EndHint",
-      "Value": "BOOST_90HZ"
-    },
-    {
-      "PowerHint": "DISPLAY_IDLE",
-      "Type": "EndHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "DISPLAY_IDLE",
-      "Type": "EndHint",
       "Value": "DISPLAY_UPDATE_IMMINENT"
     },
     {
@@ -1378,11 +1270,6 @@
       "Value": "1"
     },
     {
-      "PowerHint": "DISPLAY_UPDATE_IMMINENT",
-      "Type": "DoHint",
-      "Value": "BOOST_DISPLAY"
-    },
-    {
       "PowerHint": "THERMAL_FLASH_LED_REDUCE_CRITICAL",
       "Node": "LimitFlashCurrent",
       "Duration": 0,
diff --git a/powerhint-whitefin.json b/powerhint-whitefin.json
index a590283..3b10212 100644
--- a/powerhint-whitefin.json
+++ b/powerhint-whitefin.json
@@ -143,12 +143,7 @@
       "Path": "/proc/vendor_sched/ta_uclamp_min",
       "Values": [
         "553",
-        "185",
-        "129",
-        "56",
         "1",
-        "183",
-        "128",
         "55"
       ],
       "ResetOnInit": true
@@ -1232,94 +1227,6 @@
       "Value": "1"
     },
     {
-      "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Type": "MaskHint",
-      "Value": "BOOST_DISPLAY"
-    },
-    {
-      "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Type": "EndHint",
-      "Value": "BOOST_120HZ"
-    },
-    {
-      "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Type": "EndHint",
-      "Value": "BOOST_90HZ"
-    },
-    {
-      "PowerHint": "ADPF_DISABLE_TA_BOOST",
-      "Type": "EndHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "BOOST_DISPLAY",
-      "Type": "DoHint",
-      "Value": "BOOST_120HZ"
-    },
-    {
-      "PowerHint": "BOOST_DISPLAY",
-      "Type": "DoHint",
-      "Value": "BOOST_90HZ"
-    },
-    {
-      "PowerHint": "BOOST_DISPLAY",
-      "Type": "DoHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "INTERACTION",
-      "Type": "DoHint",
-      "Value": "BOOST_DISPLAY"
-    },
-    {
-      "PowerHint": "BOOST_120HZ",
-      "Node": "TAUClampBoost",
-      "Duration": 200,
-      "Value": "185"
-    },
-    {
-      "PowerHint": "BOOST_90HZ",
-      "Node": "TAUClampBoost",
-      "Duration": 200,
-      "Value": "129"
-    },
-    {
-      "PowerHint": "BOOST_60HZ",
-      "Node": "TAUClampBoost",
-      "Duration": 200,
-      "Value": "129"
-    },
-    {
-      "PowerHint": "REFRESH_120FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "REFRESH_120FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_90HZ"
-    },
-    {
-      "PowerHint": "REFRESH_90FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "REFRESH_90FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_120HZ"
-    },
-    {
-      "PowerHint": "REFRESH_60FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_90HZ"
-    },
-    {
-      "PowerHint": "REFRESH_60FPS",
-      "Type": "MaskHint",
-      "Value": "BOOST_120HZ"
-    },
-    {
       "PowerHint": "DISPLAY_IDLE",
       "Node": "FGPreferIdle",
       "Duration": 0,
@@ -1339,21 +1246,6 @@
     {
       "PowerHint": "DISPLAY_IDLE",
       "Type": "EndHint",
-      "Value": "BOOST_120HZ"
-    },
-    {
-      "PowerHint": "DISPLAY_IDLE",
-      "Type": "EndHint",
-      "Value": "BOOST_90HZ"
-    },
-    {
-      "PowerHint": "DISPLAY_IDLE",
-      "Type": "EndHint",
-      "Value": "BOOST_60HZ"
-    },
-    {
-      "PowerHint": "DISPLAY_IDLE",
-      "Type": "EndHint",
       "Value": "DISPLAY_UPDATE_IMMINENT"
     },
     {
@@ -1363,11 +1255,6 @@
       "Value": "1"
     },
     {
-      "PowerHint": "DISPLAY_UPDATE_IMMINENT",
-      "Type": "DoHint",
-      "Value": "BOOST_DISPLAY"
-    },
-    {
       "PowerHint": "THERMAL_FLASH_LED_REDUCE_CRITICAL",
       "Node": "LimitFlashCurrent",
       "Duration": 0,
diff --git a/raven/BoardConfig.mk b/raven/BoardConfig.mk
index 2b67f76..b78d5b4 100644
--- a/raven/BoardConfig.mk
+++ b/raven/BoardConfig.mk
@@ -17,13 +17,15 @@
 ifdef PHONE_CAR_BOARD_PRODUCT
   include device/google_car/$(PHONE_CAR_BOARD_PRODUCT)/BoardConfig.mk
 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 device/google/gs101/wifi/BoardConfig-wifi.mk
-  -include vendor/google_devices/gs101/prebuilts/BoardConfigVendor.mk
-  -include vendor/google_devices/raven/proprietary/BoardConfigVendor.mk
 endif
+
+TARGET_BOARD_INFO_FILE := device/google/raviole/board-info.txt
+TARGET_BOOTLOADER_BOARD_NAME := raven
+USES_DEVICE_GOOGLE_RAVIOLE := true
+BOARD_KERNEL_CMDLINE += disable_dma32=on
+
+include device/google/gs101/BoardConfig-common.mk
+include device/google/gs101/wifi/BoardConfig-wifi.mk
+-include vendor/google_devices/gs101/prebuilts/BoardConfigVendor.mk
+-include vendor/google_devices/raven/proprietary/BoardConfigVendor.mk
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 e945ffd..9a49278 100644
--- a/raven/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/raven/overlay/frameworks/base/core/res/res/values/config.xml
@@ -175,7 +175,7 @@
          when adapting to brighter or darker environments.  This parameter controls how quickly
          brightness changes occur in response to an observed change in light level that exceeds the
          hysteresis threshold. -->
-    <integer name="config_autoBrightnessBrighteningLightDebounce">2000</integer>
+    <integer name="config_autoBrightnessBrighteningLightDebounce">1000</integer>
     <integer name="config_autoBrightnessDarkeningLightDebounce">4000</integer>
 
     <!-- MMS user agent string -->
@@ -208,73 +208,94 @@
     <!-- the number of the max cached processes in the system. -->
     <integer name="config_customizedMaxCachedProcesses">64</integer>
 
-    <integer-array name="config_ambientThresholdLevels">
-        <item>1</item>
-        <item>2</item>
-        <item>3</item>
-        <item>4</item>
-        <item>5</item>
-        <item>6</item>
-        <item>7</item>
-        <item>8</item>
-        <item>9</item>
-        <item>10</item>
-        <item>20</item>
-        <item>30</item>
-        <item>40</item>
-        <item>50</item>
-        <item>60</item>
-        <item>70</item>
-        <item>80</item>
-        <item>90</item>
-        <item>100</item>
-    </integer-array>
+<integer-array name="config_ambientThresholdLevels">
+    <item>2</item>
+    <item>3</item>
+    <item>4</item>
+    <item>5</item>
+    <item>6</item>
+    <item>7</item>
+    <item>8</item>
+    <item>9</item>
+    <item>10</item>
+    <item>20</item>
+    <item>30</item>
+    <item>40</item>
+    <item>50</item>
+    <item>60</item>
+    <item>70</item>
+    <item>80</item>
+    <item>90</item>
+    <item>100</item>
+    <item>200</item>
+    <item>300</item>
+    <item>400</item>
+    <item>500</item>
+    <item>1000</item>
+    <item>2000</item>
+    <item>3000</item>
+    <item>4000</item>
+</integer-array>
 
-    <integer-array name="config_ambientBrighteningThresholds">
-        <item>11373</item>
-        <item>5000</item>
-        <item>4333</item>
-        <item>3666</item>
-        <item>3000</item>
-        <item>2760</item>
-        <item>2520</item>
-        <item>2280</item>
-        <item>2040</item>
-        <item>1800</item>
-        <item>800</item>
-        <item>527</item>
-        <item>500</item>
-        <item>470</item>
-        <item>396</item>
-        <item>322</item>
-        <item>248</item>
-        <item>174</item>
-        <item>99</item>
-        <item>99</item>
-    </integer-array>
+<integer-array name="config_ambientBrighteningThresholds">
+    <item>5186</item>
+    <item>4333</item>
+    <item>3666</item>
+    <item>2999</item>
+    <item>2759</item>
+    <item>2519</item>
+    <item>2279</item>
+    <item>2039</item>
+    <item>1799</item>
+    <item>799</item>
+    <item>527</item>
+    <item>499</item>
+    <item>470</item>
+    <item>517</item>
+    <item>565</item>
+    <item>612</item>
+    <item>660</item>
+    <item>708</item>
+    <item>742</item>
+    <item>636</item>
+    <item>582</item>
+    <item>549</item>
+    <item>369</item>
+    <item>294</item>
+    <item>269</item>
+    <item>220</item>
+    <item>220</item>
+</integer-array>
 
-    <integer-array name="config_ambientDarkeningThresholds">
-        <item>853</item>
-        <item>700</item>
-        <item>683</item>
-        <item>666</item>
-        <item>650</item>
-        <item>640</item>
-        <item>630</item>
-        <item>620</item>
-        <item>610</item>
-        <item>600</item>
-        <item>500</item>
-        <item>500</item>
-        <item>440</item>
-        <item>385</item>
-        <item>348</item>
-        <item>311</item>
-        <item>274</item>
-        <item>237</item>
-        <item>200</item>
-        <item>200</item>
-    </integer-array>
+<integer-array name="config_ambientDarkeningThresholds">
+    <item>525</item>
+    <item>683</item>
+    <item>666</item>
+    <item>650</item>
+    <item>640</item>
+    <item>630</item>
+    <item>620</item>
+    <item>610</item>
+    <item>600</item>
+    <item>500</item>
+    <item>500</item>
+    <item>440</item>
+    <item>385</item>
+    <item>382</item>
+    <item>379</item>
+    <item>376</item>
+    <item>373</item>
+    <item>371</item>
+    <item>367</item>
+    <item>387</item>
+    <item>397</item>
+    <item>403</item>
+    <item>380</item>
+    <item>345</item>
+    <item>333</item>
+    <item>283</item>
+    <item>283</item>
+</integer-array>
 
     <!-- Boolean indicating if restoring network selection should be skipped -->
     <!-- The restoring is handled by modem if it is true -->
diff --git a/raven/overlay/frameworks/base/core/res/res/xml/power_profile.xml b/raven/overlay/frameworks/base/core/res/res/xml/power_profile.xml
index 1937c0d..bdf30a8 100644
--- a/raven/overlay/frameworks/base/core/res/res/xml/power_profile.xml
+++ b/raven/overlay/frameworks/base/core/res/res/xml/power_profile.xml
@@ -170,15 +170,15 @@
     <item name="audio">75</item>
 
     <!-- Cellular modem related values.-->
-    <item name="modem.controller.sleep">0</item>
-    <item name="modem.controller.idle">156</item>
-    <item name="modem.controller.rx">145</item>
+    <item name="modem.controller.sleep">2</item>
+    <item name="modem.controller.idle">3.5</item>
+    <item name="modem.controller.rx">198</item>
     <array name="modem.controller.tx"> <!-- Strength 0 to 4 -->
-        <value>153</value>
-        <value>212</value>
-        <value>292</value>
-        <value>359</value>
-        <value>471</value>
+        <value>223</value>
+        <value>243</value>
+        <value>298</value>
+        <value>573</value>
+        <value>668</value>
     </array>
     <item name="modem.controller.voltage">3700</item>
 
diff --git a/thermal_info_config_charge_oriole.json b/thermal_info_config_charge_oriole.json
new file mode 100644
index 0000000..280dd33
--- /dev/null
+++ b/thermal_info_config_charge_oriole.json
@@ -0,0 +1,483 @@
+{
+    "Sensors":[
+        {
+            "Name":"battery",
+            "Type":"BATTERY",
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "60.0"
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"gnss_tcxo_therm",
+            "Type":"UNKNOWN",
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "TempPath":"/dev/thermal/tz-by-name/gnss_tcxo_therm/adc_channel/channel_temp",
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"qi_therm",
+            "Type":"UNKNOWN",
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "TempPath":"/dev/thermal/tz-by-name/qi_therm/adc_channel/channel_temp",
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"usb_pwr_therm",
+            "Type":"UNKNOWN",
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm/adc_channel/channel_temp",
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"usb_pwr_therm2",
+            "Type":"UNKNOWN",
+            "HotThreshold":[
+                "NAN",
+                "35.0",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "HotHysteresis":[
+                0.0,
+                0.9,
+                0.0,
+                0.0,
+                0.0,
+                0.0,
+                0.0
+            ],
+            "TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm2/adc_channel/channel_temp",
+            "VrThreshold":"NAN",
+            "Multiplier":0.001,
+            "PollingDelay":60000,
+            "PassiveDelay":7000
+        },
+        {
+            "Name":"disp_therm",
+            "Type":"UNKNOWN",
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "TempPath":"/dev/thermal/tz-by-name/disp_therm/adc_channel/channel_temp",
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"quiet_therm",
+            "Type":"UNKNOWN",
+            "HotThreshold":[
+                "NAN",
+                "32.9",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "HotHysteresis":[
+                0.0,
+                0.9,
+                0.0,
+                0.0,
+                0.0,
+                0.0,
+                0.0
+            ],
+            "TempPath":"/dev/thermal/tz-by-name/quiet_therm/adc_channel/channel_temp",
+            "VrThreshold":"NAN",
+            "Multiplier":0.001,
+            "PollingDelay":60000,
+            "PassiveDelay":7000
+        },
+        {
+            "Name":"VIRTUAL-QI-GNSS",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"WEIGHTED_AVG",
+            "Combination":[
+                "qi_therm",
+                "gnss_tcxo_therm"
+            ],
+            "Coefficient":[
+                "0.25",
+                "0.75"
+            ],
+            "Offset":-4500,
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"VIRTUAL-QI-BATT",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"WEIGHTED_AVG",
+            "Combination":[
+                "qi_therm",
+                "battery"
+            ],
+            "Coefficient":[
+                "0.22",
+                "0.78"
+            ],
+            "Offset":-500,
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"VIRTUAL-USB2-DISP",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"WEIGHTED_AVG",
+            "Combination":[
+                "usb_pwr_therm2",
+                "disp_therm"
+            ],
+            "Coefficient":[
+                "0.16",
+                "0.84"
+            ],
+            "Offset":1500,
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"VIRTUAL-QUIET-BATT",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"WEIGHTED_AVG",
+            "Combination":[
+                "quiet_therm",
+                "battery"
+            ],
+            "Coefficient":[
+                "2.15",
+                "-1.15"
+            ],
+            "Offset":-2000,
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"VIRTUAL-SKIN-CHARGE",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "TriggerSensor":"quiet_therm",
+            "Formula":"MAXIMUM",
+            "Combination":[
+                "VIRTUAL-QI-GNSS",
+                "VIRTUAL-QI-BATT",
+                "VIRTUAL-USB2-DISP",
+                "VIRTUAL-QUIET-BATT"
+            ],
+            "Coefficient":[
+                "1.0",
+                "1.0",
+                "1.0",
+                "1.0"
+            ],
+            "HotThreshold":[
+                "NAN",
+                "39.0",
+                "41.0",
+                "43.0",
+                "45.0",
+                "47.0",
+                "55.0"
+            ],
+            "HotHysteresis":[
+                0.0,
+                1.9,
+                1.9,
+                1.9,
+                1.9,
+                1.9,
+                1.9
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001,
+            "PollingDelay":300000,
+            "PassiveDelay":7000,
+            "BindedCdevInfo": [
+                {
+                    "CdevRequest": "fcc",
+                    "LimitInfo": [0, 2, 3, 3, 4, 4, 4],
+                    "BindedPowerRail": "POWER_FOR_CHARGING_THROTTLING",
+                    "PowerThreshold": [500, 500, 500, 500, 0, 0, 0],
+                    "CdevFloorWithPowerLink": [0, 0, 2, 2, 4 ,4 ,4],
+                    "ReleaseLogic": "RELEASE_TO_FLOOR",
+                    "ThrottlingWithPowerLink":true
+                },
+                {
+                    "CdevRequest": "dc_icl",
+                    "LimitInfo": [0, 1, 2, 3, 4, 4, 4],
+                    "BindedPowerRail": "POWER_FOR_CHARGING_THROTTLING",
+                    "PowerThreshold": [500, 500, 500, 500, 0, 0, 0],
+                    "CdevFloorWithPowerLink": [0, 1, 2, 3, 4, 4, 4],
+                    "ReleaseLogic": "RELEASE_TO_FLOOR",
+                    "ThrottlingWithPowerLink":true
+                },
+                {
+                    "CdevRequest": "wlc_fcc",
+                    "LimitInfo": [0, 2, 2, 4, 5, 5, 5],
+                    "BindedPowerRail": "POWER_FOR_CHARGING_THROTTLING",
+                    "PowerThreshold": [500, 500, 500, 500, 0, 0, 0],
+                    "CdevFloorWithPowerLink": [0, 1, 1, 2, 5, 5, 5],
+                    "ReleaseLogic": "RELEASE_TO_FLOOR",
+                    "ThrottlingWithPowerLink":true
+                }
+            ]
+        },
+        {
+            "Name":"USB2-MINUS-USB",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"WEIGHTED_AVG",
+            "Combination":[
+                "usb_pwr_therm2",
+                "usb_pwr_therm"
+            ],
+            "Coefficient":[
+                "1.0",
+                "-1.0"
+            ],
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"USB2-MINUS-QI",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"WEIGHTED_AVG",
+            "Combination":[
+                "usb_pwr_therm2",
+                "qi_therm"
+            ],
+            "Coefficient":[
+                "1.0",
+                "-1.0"
+            ],
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"VIRTUAL-USB-THROTTLING",
+            "Type":"USB_PORT",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"COUNT_THRESHOLD",
+            "TriggerSensor": "usb_pwr_therm2",
+            "Combination":[
+                "usb_pwr_therm2",
+                "USB2-MINUS-USB",
+                "USB2-MINUS-QI"
+            ],
+            "Coefficient":[
+                "35000",
+                "2000",
+                "10000"
+            ],
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "3.0",
+                "NAN",
+                "NAN"
+            ],
+            "BindedCdevInfo": [
+                {
+                    "CdevRequest": "usbc-port",
+                    "LimitInfo": [0, 0, 0, 0, 1, 1, 1]
+                }
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":1,
+            "PollingDelay":60000,
+            "PassiveDelay":7000
+        }
+    ],
+    "CoolingDevices":[
+        {
+            "Name":"fcc",
+            "Type":"BATTERY"
+        },
+        {
+            "Name":"dc_icl",
+            "Type":"BATTERY"
+        },
+        {
+            "Name":"wlc_fcc",
+            "Type":"BATTERY"
+        },
+        {
+            "Name":"usbc-port",
+            "Type":"BATTERY"
+        }
+    ],
+    "PowerRails":[
+        {
+            "Name":"PPVAR_VSYS_PWR_DISP"
+        },
+        {
+            "Name":"VSYS_PWR_MODEM"
+        },
+        {
+            "Name":"S2M_VDD_CPUCL2",
+            "PowerSampleDelay":14000,
+            "PowerSampleCount":5
+
+        },
+        {
+            "Name":"S3M_VDD_CPUCL1",
+            "PowerSampleDelay":14000,
+            "PowerSampleCount":5
+        },
+        {
+            "Name":"S4M_VDD_CPUCL0",
+            "PowerSampleDelay":14000,
+            "PowerSampleCount":5
+        },
+        {
+            "Name":"S5M_VDD_INT"
+        },
+        {
+            "Name":"S1M_VDD_MIF"
+        },
+        {
+            "Name":"S2S_VDD_G3D",
+            "PowerSampleDelay":14000,
+            "PowerSampleCount":5
+        },
+        {
+            "Name":"POWER_FOR_CHARGING_THROTTLING",
+            "VirtualRails":true,
+            "Formula":"WEIGHTED_AVG",
+            "Combination":[
+                "VSYS_PWR_MODEM",
+                "S2M_VDD_CPUCL2",
+                "S3M_VDD_CPUCL1",
+                "S4M_VDD_CPUCL0",
+                "S5M_VDD_INT",
+                "S1M_VDD_MIF",
+                "S2S_VDD_G3D"
+            ],
+            "Coefficient":[
+                "1.0",
+                "1.0",
+                "1.0",
+                "1.0",
+                "1.0",
+                "1.0",
+                "1.0"
+            ],
+            "PowerSampleDelay":14000,
+            "PowerSampleCount":5
+        }
+    ]
+}
diff --git a/thermal_info_config_charge_raven.json b/thermal_info_config_charge_raven.json
new file mode 100644
index 0000000..411383b
--- /dev/null
+++ b/thermal_info_config_charge_raven.json
@@ -0,0 +1,499 @@
+{
+    "Sensors":[
+        {
+            "Name":"battery",
+            "Type":"BATTERY",
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "60.0"
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"neutral_therm",
+            "Type":"UNKNOWN",
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "TempPath":"/dev/thermal/tz-by-name/neutral_therm/adc_channel/channel_temp",
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"gnss_tcxo_therm",
+            "Type":"UNKNOWN",
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "TempPath":"/dev/thermal/tz-by-name/gnss_tcxo_therm/adc_channel/channel_temp",
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"qi_therm",
+            "Type":"UNKNOWN",
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "TempPath":"/dev/thermal/tz-by-name/qi_therm/adc_channel/channel_temp",
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"quiet_therm",
+            "Type":"UNKNOWN",
+            "HotThreshold":[
+                "NAN",
+                "32.2",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "HotHysteresis":[
+                0.0,
+                0.9,
+                0.0,
+                0.0,
+                0.0,
+                0.0,
+                0.0
+            ],
+            "TempPath":"/dev/thermal/tz-by-name/quiet_therm/adc_channel/channel_temp",
+            "VrThreshold":"NAN",
+            "Multiplier":0.001,
+            "PollingDelay":60000,
+            "PassiveDelay":7000
+        },
+        {
+            "Name":"usb_pwr_therm",
+            "Type":"UNKNOWN",
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm/adc_channel/channel_temp",
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"usb_pwr_therm2",
+            "Type":"UNKNOWN",
+            "HotThreshold":[
+                "NAN",
+                "40.0",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "HotHysteresis":[
+                0.0,
+                0.9,
+                0.0,
+                0.0,
+                0.0,
+                0.0,
+                0.0
+            ],
+            "TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm2/adc_channel/channel_temp",
+            "VrThreshold":"NAN",
+            "Multiplier":0.001,
+            "PollingDelay":60000,
+            "PassiveDelay":7000
+        },
+        {
+            "Name":"disp_therm",
+            "Type":"UNKNOWN",
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "TempPath":"/dev/thermal/tz-by-name/disp_therm/adc_channel/channel_temp",
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"VIRTUAL-NEUTRAL-QI",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"WEIGHTED_AVG",
+            "Combination":[
+                "neutral_therm",
+                "qi_therm"
+            ],
+            "Coefficient":[
+                "0.6",
+                "0.4"
+            ],
+            "Offset":-3000,
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"VIRTUAL-USB2-BATT",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"WEIGHTED_AVG",
+            "Combination":[
+                "usb_pwr_therm2",
+                "battery"
+            ],
+            "Coefficient":[
+                "0.05",
+                "0.95"
+            ],
+            "Offset":1000,
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"VIRTUAL-GNSS-BATT",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"WEIGHTED_AVG",
+            "Combination":[
+                "gnss_tcxo_therm",
+                "battery"
+            ],
+            "Coefficient":[
+                "0.50",
+                "0.50"
+            ],
+            "Offset":1500,
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"VIRTUAL-QI-DISP",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"WEIGHTED_AVG",
+            "Combination":[
+                "qi_therm",
+                "disp_therm"
+            ],
+            "Coefficient":[
+                "0.15",
+                "0.85"
+            ],
+            "Offset":2000,
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"VIRTUAL-SKIN-CHARGE",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "TriggerSensor":"quiet_therm",
+            "Formula":"MAXIMUM",
+            "Combination":[
+                "VIRTUAL-NEUTRAL-QI",
+                "VIRTUAL-USB2-BATT",
+                "VIRTUAL-GNSS-BATT",
+                "VIRTUAL-QI-DISP"
+            ],
+            "Coefficient":[
+                "1.0",
+                "1.0",
+                "1.0",
+                "1.0"
+            ],
+            "HotThreshold":[
+                "NAN",
+                "39.0",
+                "41.0",
+                "43.0",
+                "45.0",
+                "47.0",
+                "55.0"
+            ],
+            "HotHysteresis":[
+                0.0,
+                1.9,
+                1.9,
+                1.9,
+                1.9,
+                1.9,
+                1.9
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001,
+            "PollingDelay":300000,
+            "PassiveDelay":7000,
+            "BindedCdevInfo": [
+                {
+                    "CdevRequest": "fcc",
+                    "LimitInfo": [0, 2, 3, 3, 4, 4, 4],
+                    "BindedPowerRail": "POWER_FOR_CHARGING_THROTTLING",
+                    "PowerThreshold": [500, 500, 500, 500, 500, 0, 0],
+                    "CdevFloorWithPowerLink": [0, 0, 2, 2, 3 ,4 ,4],
+                    "ReleaseLogic": "RELEASE_TO_FLOOR",
+                    "ThrottlingWithPowerLink":true
+                },
+                {
+                    "CdevRequest": "dc_icl",
+                    "LimitInfo": [0, 1, 2, 3, 4, 4, 4],
+                    "BindedPowerRail": "POWER_FOR_CHARGING_THROTTLING",
+                    "PowerThreshold": [500, 500, 500, 500, 500, 0, 0],
+                    "CdevFloorWithPowerLink": [0, 1, 2, 3, 3, 4, 4],
+                    "ReleaseLogic": "RELEASE_TO_FLOOR",
+                    "ThrottlingWithPowerLink":true
+                },
+                {
+                    "CdevRequest": "wlc_fcc",
+                    "LimitInfo": [0, 3, 3, 4, 5, 5, 5],
+                    "BindedPowerRail": "POWER_FOR_CHARGING_THROTTLING",
+                    "PowerThreshold": [500, 500, 500, 500, 500, 0, 0],
+                    "CdevFloorWithPowerLink": [0, 1, 2, 3, 4, 5, 5],
+                    "ReleaseLogic": "RELEASE_TO_FLOOR",
+                    "ThrottlingWithPowerLink":true
+                }
+            ]
+        },
+        {
+            "Name":"USB2-MINUS-USB",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"WEIGHTED_AVG",
+            "Combination":[
+                "usb_pwr_therm2",
+                "usb_pwr_therm"
+            ],
+            "Coefficient":[
+                "1.0",
+                "-1.0"
+            ],
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"USB2-MINUS-QI",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"WEIGHTED_AVG",
+            "Combination":[
+                "usb_pwr_therm2",
+                "qi_therm"
+            ],
+            "Coefficient":[
+                "1.0",
+                "-1.0"
+            ],
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN"
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":0.001
+        },
+        {
+            "Name":"VIRTUAL-USB-THROTTLING",
+            "Type":"USB_PORT",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"COUNT_THRESHOLD",
+            "TriggerSensor": "usb_pwr_therm2",
+            "Combination":[
+                "usb_pwr_therm2",
+                "USB2-MINUS-USB",
+                "USB2-MINUS-QI"
+            ],
+            "Coefficient":[
+                "40000",
+                "4500",
+                "9000"
+            ],
+            "HotThreshold":[
+                "NAN",
+                "NAN",
+                "NAN",
+                "NAN",
+                "3.0",
+                "NAN",
+                "NAN"
+            ],
+            "BindedCdevInfo": [
+                {
+                    "CdevRequest": "usbc-port",
+                    "LimitInfo": [0, 0, 0, 0, 1, 1, 1]
+                }
+            ],
+            "VrThreshold":"NAN",
+            "Multiplier":1,
+            "PollingDelay":60000,
+            "PassiveDelay":7000
+        }
+    ],
+    "CoolingDevices":[
+        {
+            "Name":"fcc",
+            "Type":"BATTERY"
+        },
+        {
+            "Name":"dc_icl",
+            "Type":"BATTERY"
+        },
+        {
+            "Name":"wlc_fcc",
+            "Type":"BATTERY"
+        },
+        {
+            "Name":"usbc-port",
+            "Type":"BATTERY"
+        }
+    ],
+    "PowerRails":[
+        {
+            "Name":"PPVAR_VSYS_PWR_DISP"
+        },
+        {
+            "Name":"VSYS_PWR_MODEM"
+        },
+        {
+            "Name":"S2M_VDD_CPUCL2",
+            "PowerSampleDelay":14000,
+            "PowerSampleCount":5
+
+        },
+        {
+            "Name":"S3M_VDD_CPUCL1",
+            "PowerSampleDelay":14000,
+            "PowerSampleCount":5
+        },
+        {
+            "Name":"S4M_VDD_CPUCL0",
+            "PowerSampleDelay":14000,
+            "PowerSampleCount":5
+        },
+        {
+            "Name":"S5M_VDD_INT"
+        },
+        {
+            "Name":"S1M_VDD_MIF"
+        },
+        {
+            "Name":"S2S_VDD_G3D",
+            "PowerSampleDelay":14000,
+            "PowerSampleCount":5
+        },
+        {
+            "Name":"POWER_FOR_CHARGING_THROTTLING",
+            "VirtualRails":true,
+            "Formula":"WEIGHTED_AVG",
+            "Combination":[
+                "VSYS_PWR_MODEM",
+                "S2M_VDD_CPUCL2",
+                "S3M_VDD_CPUCL1",
+                "S4M_VDD_CPUCL0",
+                "S5M_VDD_INT",
+                "S1M_VDD_MIF",
+                "S2S_VDD_G3D"
+            ],
+            "Coefficient":[
+                "1.0",
+                "1.0",
+                "1.0",
+                "1.0",
+                "1.0",
+                "1.0",
+                "1.0"
+            ],
+            "PowerSampleDelay":14000,
+            "PowerSampleCount":5
+        }
+    ]
+}
diff --git a/uwb/Android.mk b/uwb/Android.mk
new file mode 100644
index 0000000..3a1cac4
--- /dev/null
+++ b/uwb/Android.mk
@@ -0,0 +1,26 @@
+
+#
+# Copyright (C) 2022 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.
+#
+# WARNING: Everything listed here will be built on ALL platforms,
+# including x86, the universal, and the SDK.  Modules must be uniquely
+# named (liblights.panda), and must build everywhere, or limit themselves
+# to only building on ARM if they include assembly. Individual makefiles
+# are responsible for having their own logic, for fine-grained control.
+LOCAL_PATH:= $(call my-dir)
+LOCAL_UWB_CAL_DIR=$(LOCAL_PATH)
+DEVICE_UWB_CAL_DIR=$(TARGET_OUT_VENDOR)/etc/uwb
+$(shell ($(LOCAL_UWB_CAL_DIR)/country_conf_gen.sh $(LOCAL_UWB_CAL_DIR) $(DEVICE_UWB_CAL_DIR)))
+
diff --git a/uwb/UWB-calibration.conf b/uwb/UWB-calibration-ce.conf
similarity index 64%
copy from uwb/UWB-calibration.conf
copy to uwb/UWB-calibration-ce.conf
index e8061b2..1117a6a 100644
--- a/uwb/UWB-calibration.conf
+++ b/uwb/UWB-calibration-ce.conf
@@ -12,79 +12,79 @@
 [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.ant_delay=16414
+ant0.ch5.prf16.tx_power=0x4B4B234B
 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.prf16.pg_delay=0x34
+ant0.ch5.prf64.ant_delay=16414
+ant0.ch5.prf64.tx_power=0x4B4B234B
 ant0.ch5.prf64.pg_count=0
-ant0.ch5.prf64.pg_delay=0x26
-ant0.ch9.prf16.ant_delay=16410
-ant0.ch9.prf16.tx_power=0x56565656
+ant0.ch5.prf64.pg_delay=0x34
+ant0.ch9.prf16.ant_delay=16426
+ant0.ch9.prf16.tx_power=0x53532B53
 ant0.ch9.prf16.pg_count=0
-ant0.ch9.prf16.pg_delay=0x26
-ant0.ch9.prf64.ant_delay=16410
-ant0.ch9.prf64.tx_power=0x56565656
+ant0.ch9.prf16.pg_delay=0x34
+ant0.ch9.prf64.ant_delay=16426
+ant0.ch9.prf64.tx_power=0x53532B53
 ant0.ch9.prf64.pg_count=0
-ant0.ch9.prf64.pg_delay=0x26
+ant0.ch9.prf64.pg_delay=0x34
 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.ant_delay=16446
+ant1.ch5.prf16.tx_power=0x6B6B336B
 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.prf16.pg_delay=0x34
+ant1.ch5.prf64.ant_delay=16446
+ant1.ch5.prf64.tx_power=0x6B6B336B
 ant1.ch5.prf64.pg_count=0
-ant1.ch5.prf64.pg_delay=0x26
-ant1.ch9.prf16.ant_delay=16410
-ant1.ch9.prf16.tx_power=0x56565656
+ant1.ch5.prf64.pg_delay=0x34
+ant1.ch9.prf16.ant_delay=16429
+ant1.ch9.prf16.tx_power=0
 ant1.ch9.prf16.pg_count=0
-ant1.ch9.prf16.pg_delay=0x26
-ant1.ch9.prf64.ant_delay=16410
-ant1.ch9.prf64.tx_power=0x56565656
+ant1.ch9.prf16.pg_delay=0
+ant1.ch9.prf64.ant_delay=16429
+ant1.ch9.prf64.tx_power=0
 ant1.ch9.prf64.pg_count=0
-ant1.ch9.prf64.pg_delay=0x26
+ant1.ch9.prf64.pg_delay=0
 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.ant_delay=16446
+ant2.ch5.prf16.tx_power=0
 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.prf16.pg_delay=0
+ant2.ch5.prf64.ant_delay=16446
+ant2.ch5.prf64.tx_power=0
 ant2.ch5.prf64.pg_count=0
-ant2.ch5.prf64.pg_delay=0x26
-ant2.ch9.prf16.ant_delay=16410
-ant2.ch9.prf16.tx_power=0x56565656
+ant2.ch5.prf64.pg_delay=0
+ant2.ch9.prf16.ant_delay=16429
+ant2.ch9.prf16.tx_power=0x47472347
 ant2.ch9.prf16.pg_count=0
-ant2.ch9.prf16.pg_delay=0x26
-ant2.ch9.prf64.ant_delay=16410
-ant2.ch9.prf64.tx_power=0x56565656
+ant2.ch9.prf16.pg_delay=0x34
+ant2.ch9.prf64.ant_delay=16429
+ant2.ch9.prf64.tx_power=0x47472347
 ant2.ch9.prf64.pg_count=0
-ant2.ch9.prf64.pg_delay=0x26
+ant2.ch9.prf64.pg_delay=0x34
 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.ant_delay=16446
+ant3.ch5.prf16.tx_power=0
 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.prf16.pg_delay=0
+ant3.ch5.prf64.ant_delay=16446
+ant3.ch5.prf64.tx_power=0
 ant3.ch5.prf64.pg_count=0
-ant3.ch5.prf64.pg_delay=0x26
-ant3.ch9.prf16.ant_delay=16410
-ant3.ch9.prf16.tx_power=0x56565656
+ant3.ch5.prf64.pg_delay=0
+ant3.ch9.prf16.ant_delay=16429
+ant3.ch9.prf16.tx_power=0x47472347
 ant3.ch9.prf16.pg_count=0
-ant3.ch9.prf16.pg_delay=0x26
-ant3.ch9.prf64.ant_delay=16410
-ant3.ch9.prf64.tx_power=0x56565656
+ant3.ch9.prf16.pg_delay=0x34
+ant3.ch9.prf64.ant_delay=16429
+ant3.ch9.prf64.tx_power=0x47472347
 ant3.ch9.prf64.pg_count=0
-ant3.ch9.prf64.pg_delay=0x26
+ant3.ch9.prf64.pg_delay=0x34
 ant3.port=1
 ant3.selector_gpio=6
 ant3.selector_gpio_value=1
@@ -114,10 +114,10 @@
 [HAL]ant_sets.ch5.range.rx_ant_set_ranging = 6
 [HAL]ant_sets.ch5.range.tx_ant_set_nonranging = 6
 [HAL]ant_sets.ch5.range.tx_ant_set_ranging = 6
-[HAL]ant_sets.ch5.azimuth.rx_ant_set_nonranging = 6
+[HAL]ant_sets.ch5.azimuth.rx_ant_set_nonranging = 4
 [HAL]ant_sets.ch5.azimuth.rx_ant_set_ranging = 4
-[HAL]ant_sets.ch5.azimuth.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch5.azimuth.tx_ant_set_ranging = 0
+[HAL]ant_sets.ch5.azimuth.tx_ant_set_nonranging = 4
+[HAL]ant_sets.ch5.azimuth.tx_ant_set_ranging = 4
 [HAL]ant_sets.ch9.range.rx_ant_set_nonranging = 6
 [HAL]ant_sets.ch9.range.rx_ant_set_ranging = 6
 [HAL]ant_sets.ch9.range.tx_ant_set_nonranging = 6
@@ -130,11 +130,11 @@
 [HAL]ant_sets.ch9.elevation.rx_ant_set_ranging = 1
 [HAL]ant_sets.ch9.elevation.tx_ant_set_nonranging = 0
 [HAL]ant_sets.ch9.elevation.tx_ant_set_ranging = 0
-[HAL]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 6
+[HAL]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 4
 [HAL]ant_sets.ch9.azimuth.rx_ant_set_ranging = 4
-[HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 0
-[HAL]minimum_system_offset_uwbtime0=500
+[HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 8
+[HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 8
+[HAL]minimum_system_offset_uwbtime0=120
 coex_gpio=4
 coex_delay_us=1000
 coex_margin_us=500
diff --git a/uwb/UWB-calibration.conf b/uwb/UWB-calibration-default.conf
similarity index 66%
copy from uwb/UWB-calibration.conf
copy to uwb/UWB-calibration-default.conf
index e8061b2..b08a0f4 100644
--- a/uwb/UWB-calibration.conf
+++ b/uwb/UWB-calibration-default.conf
@@ -12,77 +12,77 @@
 [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.ant_delay=16414
+ant0.ch5.prf16.tx_power=0x47472347
 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.prf16.pg_delay=0x34
+ant0.ch5.prf64.ant_delay=16414
+ant0.ch5.prf64.tx_power=0x47472347
 ant0.ch5.prf64.pg_count=0
-ant0.ch5.prf64.pg_delay=0x26
-ant0.ch9.prf16.ant_delay=16410
-ant0.ch9.prf16.tx_power=0x56565656
+ant0.ch5.prf64.pg_delay=0x34
+ant0.ch9.prf16.ant_delay=16426
+ant0.ch9.prf16.tx_power=0x47472347
 ant0.ch9.prf16.pg_count=0
-ant0.ch9.prf16.pg_delay=0x26
-ant0.ch9.prf64.ant_delay=16410
-ant0.ch9.prf64.tx_power=0x56565656
+ant0.ch9.prf16.pg_delay=0x34
+ant0.ch9.prf64.ant_delay=16426
+ant0.ch9.prf64.tx_power=0x47472347
 ant0.ch9.prf64.pg_count=0
-ant0.ch9.prf64.pg_delay=0x26
+ant0.ch9.prf64.pg_delay=0x34
 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.ant_delay=16446
+ant1.ch5.prf16.tx_power=0x5B5B2B5B
 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.prf16.pg_delay=0x20
+ant1.ch5.prf64.ant_delay=16446
+ant1.ch5.prf64.tx_power=0x5B5B2B5B
 ant1.ch5.prf64.pg_count=0
-ant1.ch5.prf64.pg_delay=0x26
-ant1.ch9.prf16.ant_delay=16410
-ant1.ch9.prf16.tx_power=0x56565656
+ant1.ch5.prf64.pg_delay=0x20
+ant1.ch9.prf16.ant_delay=16429
+ant1.ch9.prf16.tx_power=0
 ant1.ch9.prf16.pg_count=0
-ant1.ch9.prf16.pg_delay=0x26
-ant1.ch9.prf64.ant_delay=16410
-ant1.ch9.prf64.tx_power=0x56565656
+ant1.ch9.prf16.pg_delay=0
+ant1.ch9.prf64.ant_delay=16429
+ant1.ch9.prf64.tx_power=0
 ant1.ch9.prf64.pg_count=0
-ant1.ch9.prf64.pg_delay=0x26
+ant1.ch9.prf64.pg_delay=0
 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.ant_delay=16446
+ant2.ch5.prf16.tx_power=0
 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.prf16.pg_delay=0
+ant2.ch5.prf64.ant_delay=16446
+ant2.ch5.prf64.tx_power=0
 ant2.ch5.prf64.pg_count=0
-ant2.ch5.prf64.pg_delay=0x26
-ant2.ch9.prf16.ant_delay=16410
-ant2.ch9.prf16.tx_power=0x56565656
+ant2.ch5.prf64.pg_delay=0
+ant2.ch9.prf16.ant_delay=16429
+ant2.ch9.prf16.tx_power=0x5F5F2F5F
 ant2.ch9.prf16.pg_count=0
 ant2.ch9.prf16.pg_delay=0x26
-ant2.ch9.prf64.ant_delay=16410
-ant2.ch9.prf64.tx_power=0x56565656
+ant2.ch9.prf64.ant_delay=16429
+ant2.ch9.prf64.tx_power=0x5F5F2F5F
 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.ant_delay=16446
+ant3.ch5.prf16.tx_power=0
 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.prf16.pg_delay=0
+ant3.ch5.prf64.ant_delay=16446
+ant3.ch5.prf64.tx_power=0
 ant3.ch5.prf64.pg_count=0
-ant3.ch5.prf64.pg_delay=0x26
-ant3.ch9.prf16.ant_delay=16410
-ant3.ch9.prf16.tx_power=0x56565656
+ant3.ch5.prf64.pg_delay=0
+ant3.ch9.prf16.ant_delay=16429
+ant3.ch9.prf16.tx_power=0x5F5F2F5F
 ant3.ch9.prf16.pg_count=0
 ant3.ch9.prf16.pg_delay=0x26
-ant3.ch9.prf64.ant_delay=16410
-ant3.ch9.prf64.tx_power=0x56565656
+ant3.ch9.prf64.ant_delay=16429
+ant3.ch9.prf64.tx_power=0x5F5F2F5F
 ant3.ch9.prf64.pg_count=0
 ant3.ch9.prf64.pg_delay=0x26
 ant3.port=1
@@ -114,10 +114,10 @@
 [HAL]ant_sets.ch5.range.rx_ant_set_ranging = 6
 [HAL]ant_sets.ch5.range.tx_ant_set_nonranging = 6
 [HAL]ant_sets.ch5.range.tx_ant_set_ranging = 6
-[HAL]ant_sets.ch5.azimuth.rx_ant_set_nonranging = 6
+[HAL]ant_sets.ch5.azimuth.rx_ant_set_nonranging = 4
 [HAL]ant_sets.ch5.azimuth.rx_ant_set_ranging = 4
-[HAL]ant_sets.ch5.azimuth.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch5.azimuth.tx_ant_set_ranging = 0
+[HAL]ant_sets.ch5.azimuth.tx_ant_set_nonranging = 4
+[HAL]ant_sets.ch5.azimuth.tx_ant_set_ranging = 4
 [HAL]ant_sets.ch9.range.rx_ant_set_nonranging = 6
 [HAL]ant_sets.ch9.range.rx_ant_set_ranging = 6
 [HAL]ant_sets.ch9.range.tx_ant_set_nonranging = 6
@@ -130,11 +130,11 @@
 [HAL]ant_sets.ch9.elevation.rx_ant_set_ranging = 1
 [HAL]ant_sets.ch9.elevation.tx_ant_set_nonranging = 0
 [HAL]ant_sets.ch9.elevation.tx_ant_set_ranging = 0
-[HAL]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 6
+[HAL]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 4
 [HAL]ant_sets.ch9.azimuth.rx_ant_set_ranging = 4
-[HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 0
-[HAL]minimum_system_offset_uwbtime0=500
+[HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 8
+[HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 8
+[HAL]minimum_system_offset_uwbtime0=120
 coex_gpio=4
 coex_delay_us=1000
 coex_margin_us=500
diff --git a/uwb/UWB-calibration.conf b/uwb/UWB-calibration-fcc.conf
similarity index 66%
copy from uwb/UWB-calibration.conf
copy to uwb/UWB-calibration-fcc.conf
index e8061b2..b08a0f4 100644
--- a/uwb/UWB-calibration.conf
+++ b/uwb/UWB-calibration-fcc.conf
@@ -12,77 +12,77 @@
 [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.ant_delay=16414
+ant0.ch5.prf16.tx_power=0x47472347
 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.prf16.pg_delay=0x34
+ant0.ch5.prf64.ant_delay=16414
+ant0.ch5.prf64.tx_power=0x47472347
 ant0.ch5.prf64.pg_count=0
-ant0.ch5.prf64.pg_delay=0x26
-ant0.ch9.prf16.ant_delay=16410
-ant0.ch9.prf16.tx_power=0x56565656
+ant0.ch5.prf64.pg_delay=0x34
+ant0.ch9.prf16.ant_delay=16426
+ant0.ch9.prf16.tx_power=0x47472347
 ant0.ch9.prf16.pg_count=0
-ant0.ch9.prf16.pg_delay=0x26
-ant0.ch9.prf64.ant_delay=16410
-ant0.ch9.prf64.tx_power=0x56565656
+ant0.ch9.prf16.pg_delay=0x34
+ant0.ch9.prf64.ant_delay=16426
+ant0.ch9.prf64.tx_power=0x47472347
 ant0.ch9.prf64.pg_count=0
-ant0.ch9.prf64.pg_delay=0x26
+ant0.ch9.prf64.pg_delay=0x34
 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.ant_delay=16446
+ant1.ch5.prf16.tx_power=0x5B5B2B5B
 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.prf16.pg_delay=0x20
+ant1.ch5.prf64.ant_delay=16446
+ant1.ch5.prf64.tx_power=0x5B5B2B5B
 ant1.ch5.prf64.pg_count=0
-ant1.ch5.prf64.pg_delay=0x26
-ant1.ch9.prf16.ant_delay=16410
-ant1.ch9.prf16.tx_power=0x56565656
+ant1.ch5.prf64.pg_delay=0x20
+ant1.ch9.prf16.ant_delay=16429
+ant1.ch9.prf16.tx_power=0
 ant1.ch9.prf16.pg_count=0
-ant1.ch9.prf16.pg_delay=0x26
-ant1.ch9.prf64.ant_delay=16410
-ant1.ch9.prf64.tx_power=0x56565656
+ant1.ch9.prf16.pg_delay=0
+ant1.ch9.prf64.ant_delay=16429
+ant1.ch9.prf64.tx_power=0
 ant1.ch9.prf64.pg_count=0
-ant1.ch9.prf64.pg_delay=0x26
+ant1.ch9.prf64.pg_delay=0
 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.ant_delay=16446
+ant2.ch5.prf16.tx_power=0
 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.prf16.pg_delay=0
+ant2.ch5.prf64.ant_delay=16446
+ant2.ch5.prf64.tx_power=0
 ant2.ch5.prf64.pg_count=0
-ant2.ch5.prf64.pg_delay=0x26
-ant2.ch9.prf16.ant_delay=16410
-ant2.ch9.prf16.tx_power=0x56565656
+ant2.ch5.prf64.pg_delay=0
+ant2.ch9.prf16.ant_delay=16429
+ant2.ch9.prf16.tx_power=0x5F5F2F5F
 ant2.ch9.prf16.pg_count=0
 ant2.ch9.prf16.pg_delay=0x26
-ant2.ch9.prf64.ant_delay=16410
-ant2.ch9.prf64.tx_power=0x56565656
+ant2.ch9.prf64.ant_delay=16429
+ant2.ch9.prf64.tx_power=0x5F5F2F5F
 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.ant_delay=16446
+ant3.ch5.prf16.tx_power=0
 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.prf16.pg_delay=0
+ant3.ch5.prf64.ant_delay=16446
+ant3.ch5.prf64.tx_power=0
 ant3.ch5.prf64.pg_count=0
-ant3.ch5.prf64.pg_delay=0x26
-ant3.ch9.prf16.ant_delay=16410
-ant3.ch9.prf16.tx_power=0x56565656
+ant3.ch5.prf64.pg_delay=0
+ant3.ch9.prf16.ant_delay=16429
+ant3.ch9.prf16.tx_power=0x5F5F2F5F
 ant3.ch9.prf16.pg_count=0
 ant3.ch9.prf16.pg_delay=0x26
-ant3.ch9.prf64.ant_delay=16410
-ant3.ch9.prf64.tx_power=0x56565656
+ant3.ch9.prf64.ant_delay=16429
+ant3.ch9.prf64.tx_power=0x5F5F2F5F
 ant3.ch9.prf64.pg_count=0
 ant3.ch9.prf64.pg_delay=0x26
 ant3.port=1
@@ -114,10 +114,10 @@
 [HAL]ant_sets.ch5.range.rx_ant_set_ranging = 6
 [HAL]ant_sets.ch5.range.tx_ant_set_nonranging = 6
 [HAL]ant_sets.ch5.range.tx_ant_set_ranging = 6
-[HAL]ant_sets.ch5.azimuth.rx_ant_set_nonranging = 6
+[HAL]ant_sets.ch5.azimuth.rx_ant_set_nonranging = 4
 [HAL]ant_sets.ch5.azimuth.rx_ant_set_ranging = 4
-[HAL]ant_sets.ch5.azimuth.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch5.azimuth.tx_ant_set_ranging = 0
+[HAL]ant_sets.ch5.azimuth.tx_ant_set_nonranging = 4
+[HAL]ant_sets.ch5.azimuth.tx_ant_set_ranging = 4
 [HAL]ant_sets.ch9.range.rx_ant_set_nonranging = 6
 [HAL]ant_sets.ch9.range.rx_ant_set_ranging = 6
 [HAL]ant_sets.ch9.range.tx_ant_set_nonranging = 6
@@ -130,11 +130,11 @@
 [HAL]ant_sets.ch9.elevation.rx_ant_set_ranging = 1
 [HAL]ant_sets.ch9.elevation.tx_ant_set_nonranging = 0
 [HAL]ant_sets.ch9.elevation.tx_ant_set_ranging = 0
-[HAL]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 6
+[HAL]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 4
 [HAL]ant_sets.ch9.azimuth.rx_ant_set_ranging = 4
-[HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 0
-[HAL]minimum_system_offset_uwbtime0=500
+[HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 8
+[HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 8
+[HAL]minimum_system_offset_uwbtime0=120
 coex_gpio=4
 coex_delay_us=1000
 coex_margin_us=500
diff --git a/uwb/UWB-calibration.conf b/uwb/UWB-calibration-jp.conf
similarity index 69%
rename from uwb/UWB-calibration.conf
rename to uwb/UWB-calibration-jp.conf
index e8061b2..6b5dd3f 100644
--- a/uwb/UWB-calibration.conf
+++ b/uwb/UWB-calibration-jp.conf
@@ -12,79 +12,79 @@
 [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.ant_delay=16414
+ant0.ch5.prf16.tx_power=0
 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.prf16.pg_delay=0
+ant0.ch5.prf64.ant_delay=16414
+ant0.ch5.prf64.tx_power=0
 ant0.ch5.prf64.pg_count=0
-ant0.ch5.prf64.pg_delay=0x26
-ant0.ch9.prf16.ant_delay=16410
-ant0.ch9.prf16.tx_power=0x56565656
+ant0.ch5.prf64.pg_delay=0
+ant0.ch9.prf16.ant_delay=16426
+ant0.ch9.prf16.tx_power=0x2A2A2A2A
 ant0.ch9.prf16.pg_count=0
-ant0.ch9.prf16.pg_delay=0x26
-ant0.ch9.prf64.ant_delay=16410
-ant0.ch9.prf64.tx_power=0x56565656
+ant0.ch9.prf16.pg_delay=0x20
+ant0.ch9.prf64.ant_delay=16426
+ant0.ch9.prf64.tx_power=0x2A2A2A2A
 ant0.ch9.prf64.pg_count=0
-ant0.ch9.prf64.pg_delay=0x26
+ant0.ch9.prf64.pg_delay=0x20
 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.ant_delay=16446
+ant1.ch5.prf16.tx_power=0
 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.prf16.pg_delay=0
+ant1.ch5.prf64.ant_delay=16446
+ant1.ch5.prf64.tx_power=0
 ant1.ch5.prf64.pg_count=0
-ant1.ch5.prf64.pg_delay=0x26
-ant1.ch9.prf16.ant_delay=16410
-ant1.ch9.prf16.tx_power=0x56565656
+ant1.ch5.prf64.pg_delay=0
+ant1.ch9.prf16.ant_delay=16429
+ant1.ch9.prf16.tx_power=0
 ant1.ch9.prf16.pg_count=0
-ant1.ch9.prf16.pg_delay=0x26
-ant1.ch9.prf64.ant_delay=16410
-ant1.ch9.prf64.tx_power=0x56565656
+ant1.ch9.prf16.pg_delay=0
+ant1.ch9.prf64.ant_delay=16429
+ant1.ch9.prf64.tx_power=0
 ant1.ch9.prf64.pg_count=0
-ant1.ch9.prf64.pg_delay=0x26
+ant1.ch9.prf64.pg_delay=0
 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.ant_delay=16446
+ant2.ch5.prf16.tx_power=0
 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.prf16.pg_delay=0
+ant2.ch5.prf64.ant_delay=16446
+ant2.ch5.prf64.tx_power=0
 ant2.ch5.prf64.pg_count=0
-ant2.ch5.prf64.pg_delay=0x26
-ant2.ch9.prf16.ant_delay=16410
-ant2.ch9.prf16.tx_power=0x56565656
+ant2.ch5.prf64.pg_delay=0
+ant2.ch9.prf16.ant_delay=16429
+ant2.ch9.prf16.tx_power=0
 ant2.ch9.prf16.pg_count=0
-ant2.ch9.prf16.pg_delay=0x26
-ant2.ch9.prf64.ant_delay=16410
-ant2.ch9.prf64.tx_power=0x56565656
+ant2.ch9.prf16.pg_delay=0
+ant2.ch9.prf64.ant_delay=16429
+ant2.ch9.prf64.tx_power=0
 ant2.ch9.prf64.pg_count=0
-ant2.ch9.prf64.pg_delay=0x26
+ant2.ch9.prf64.pg_delay=0
 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.ant_delay=16446
+ant3.ch5.prf16.tx_power=0
 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.prf16.pg_delay=0
+ant3.ch5.prf64.ant_delay=16446
+ant3.ch5.prf64.tx_power=0
 ant3.ch5.prf64.pg_count=0
-ant3.ch5.prf64.pg_delay=0x26
-ant3.ch9.prf16.ant_delay=16410
-ant3.ch9.prf16.tx_power=0x56565656
+ant3.ch5.prf64.pg_delay=0
+ant3.ch9.prf16.ant_delay=16429
+ant3.ch9.prf16.tx_power=0
 ant3.ch9.prf16.pg_count=0
-ant3.ch9.prf16.pg_delay=0x26
-ant3.ch9.prf64.ant_delay=16410
-ant3.ch9.prf64.tx_power=0x56565656
+ant3.ch9.prf16.pg_delay=0
+ant3.ch9.prf64.ant_delay=16429
+ant3.ch9.prf64.tx_power=0
 ant3.ch9.prf64.pg_count=0
-ant3.ch9.prf64.pg_delay=0x26
+ant3.ch9.prf64.pg_delay=0
 ant3.port=1
 ant3.selector_gpio=6
 ant3.selector_gpio_value=1
@@ -108,7 +108,8 @@
 temperature_reference=85
 smart_tx_power=1
 auto_sleep_margin=20000
-restricted_channels=0
+alternate_pulse_shape=0x01
+restricted_channels=0x20
 [HAL]aoa_capability=1
 [HAL]ant_sets.ch5.range.rx_ant_set_nonranging = 6
 [HAL]ant_sets.ch5.range.rx_ant_set_ranging = 6
@@ -134,7 +135,7 @@
 [HAL]ant_sets.ch9.azimuth.rx_ant_set_ranging = 4
 [HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 0
 [HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 0
-[HAL]minimum_system_offset_uwbtime0=500
+[HAL]minimum_system_offset_uwbtime0=120
 coex_gpio=4
 coex_delay_us=1000
 coex_margin_us=500
diff --git a/uwb/UWB-calibration.conf b/uwb/UWB-calibration-restricted.conf
similarity index 66%
copy from uwb/UWB-calibration.conf
copy to uwb/UWB-calibration-restricted.conf
index e8061b2..14552c3 100644
--- a/uwb/UWB-calibration.conf
+++ b/uwb/UWB-calibration-restricted.conf
@@ -12,77 +12,77 @@
 [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.ant_delay=16414
+ant0.ch5.prf16.tx_power=0x47472347
 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.prf16.pg_delay=0x34
+ant0.ch5.prf64.ant_delay=16414
+ant0.ch5.prf64.tx_power=0x47472347
 ant0.ch5.prf64.pg_count=0
-ant0.ch5.prf64.pg_delay=0x26
-ant0.ch9.prf16.ant_delay=16410
-ant0.ch9.prf16.tx_power=0x56565656
+ant0.ch5.prf64.pg_delay=0x34
+ant0.ch9.prf16.ant_delay=16426
+ant0.ch9.prf16.tx_power=0x47472347
 ant0.ch9.prf16.pg_count=0
-ant0.ch9.prf16.pg_delay=0x26
-ant0.ch9.prf64.ant_delay=16410
-ant0.ch9.prf64.tx_power=0x56565656
+ant0.ch9.prf16.pg_delay=0x34
+ant0.ch9.prf64.ant_delay=16426
+ant0.ch9.prf64.tx_power=0x47472347
 ant0.ch9.prf64.pg_count=0
-ant0.ch9.prf64.pg_delay=0x26
+ant0.ch9.prf64.pg_delay=0x34
 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.ant_delay=16446
+ant1.ch5.prf16.tx_power=0x5B5B2B5B
 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.prf16.pg_delay=0x20
+ant1.ch5.prf64.ant_delay=16446
+ant1.ch5.prf64.tx_power=0x5B5B2B5B
 ant1.ch5.prf64.pg_count=0
-ant1.ch5.prf64.pg_delay=0x26
-ant1.ch9.prf16.ant_delay=16410
-ant1.ch9.prf16.tx_power=0x56565656
+ant1.ch5.prf64.pg_delay=0x20
+ant1.ch9.prf16.ant_delay=16429
+ant1.ch9.prf16.tx_power=0
 ant1.ch9.prf16.pg_count=0
-ant1.ch9.prf16.pg_delay=0x26
-ant1.ch9.prf64.ant_delay=16410
-ant1.ch9.prf64.tx_power=0x56565656
+ant1.ch9.prf16.pg_delay=0
+ant1.ch9.prf64.ant_delay=16429
+ant1.ch9.prf64.tx_power=0
 ant1.ch9.prf64.pg_count=0
-ant1.ch9.prf64.pg_delay=0x26
+ant1.ch9.prf64.pg_delay=0
 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.ant_delay=16446
+ant2.ch5.prf16.tx_power=0
 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.prf16.pg_delay=0
+ant2.ch5.prf64.ant_delay=16446
+ant2.ch5.prf64.tx_power=0
 ant2.ch5.prf64.pg_count=0
-ant2.ch5.prf64.pg_delay=0x26
-ant2.ch9.prf16.ant_delay=16410
-ant2.ch9.prf16.tx_power=0x56565656
+ant2.ch5.prf64.pg_delay=0
+ant2.ch9.prf16.ant_delay=16429
+ant2.ch9.prf16.tx_power=0x5F5F2F5F
 ant2.ch9.prf16.pg_count=0
 ant2.ch9.prf16.pg_delay=0x26
-ant2.ch9.prf64.ant_delay=16410
-ant2.ch9.prf64.tx_power=0x56565656
+ant2.ch9.prf64.ant_delay=16429
+ant2.ch9.prf64.tx_power=0x5F5F2F5F
 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.ant_delay=16446
+ant3.ch5.prf16.tx_power=0
 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.prf16.pg_delay=0
+ant3.ch5.prf64.ant_delay=16446
+ant3.ch5.prf64.tx_power=0
 ant3.ch5.prf64.pg_count=0
-ant3.ch5.prf64.pg_delay=0x26
-ant3.ch9.prf16.ant_delay=16410
-ant3.ch9.prf16.tx_power=0x56565656
+ant3.ch5.prf64.pg_delay=0
+ant3.ch9.prf16.ant_delay=16429
+ant3.ch9.prf16.tx_power=0x5F5F2F5F
 ant3.ch9.prf16.pg_count=0
 ant3.ch9.prf16.pg_delay=0x26
-ant3.ch9.prf64.ant_delay=16410
-ant3.ch9.prf64.tx_power=0x56565656
+ant3.ch9.prf64.ant_delay=16429
+ant3.ch9.prf64.tx_power=0x5F5F2F5F
 ant3.ch9.prf64.pg_count=0
 ant3.ch9.prf64.pg_delay=0x26
 ant3.port=1
@@ -108,16 +108,16 @@
 temperature_reference=85
 smart_tx_power=1
 auto_sleep_margin=20000
-restricted_channels=0
+restricted_channels=0xffff
 [HAL]aoa_capability=1
 [HAL]ant_sets.ch5.range.rx_ant_set_nonranging = 6
 [HAL]ant_sets.ch5.range.rx_ant_set_ranging = 6
 [HAL]ant_sets.ch5.range.tx_ant_set_nonranging = 6
 [HAL]ant_sets.ch5.range.tx_ant_set_ranging = 6
-[HAL]ant_sets.ch5.azimuth.rx_ant_set_nonranging = 6
+[HAL]ant_sets.ch5.azimuth.rx_ant_set_nonranging = 4
 [HAL]ant_sets.ch5.azimuth.rx_ant_set_ranging = 4
-[HAL]ant_sets.ch5.azimuth.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch5.azimuth.tx_ant_set_ranging = 0
+[HAL]ant_sets.ch5.azimuth.tx_ant_set_nonranging = 4
+[HAL]ant_sets.ch5.azimuth.tx_ant_set_ranging = 4
 [HAL]ant_sets.ch9.range.rx_ant_set_nonranging = 6
 [HAL]ant_sets.ch9.range.rx_ant_set_ranging = 6
 [HAL]ant_sets.ch9.range.tx_ant_set_nonranging = 6
@@ -130,11 +130,11 @@
 [HAL]ant_sets.ch9.elevation.rx_ant_set_ranging = 1
 [HAL]ant_sets.ch9.elevation.tx_ant_set_nonranging = 0
 [HAL]ant_sets.ch9.elevation.tx_ant_set_ranging = 0
-[HAL]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 6
+[HAL]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 4
 [HAL]ant_sets.ch9.azimuth.rx_ant_set_ranging = 4
-[HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 0
-[HAL]minimum_system_offset_uwbtime0=500
+[HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 8
+[HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 8
+[HAL]minimum_system_offset_uwbtime0=120
 coex_gpio=4
 coex_delay_us=1000
 coex_margin_us=500
diff --git a/uwb/UWB-calibration.conf b/uwb/UWB-calibration-tw.conf
similarity index 66%
copy from uwb/UWB-calibration.conf
copy to uwb/UWB-calibration-tw.conf
index e8061b2..95c0d2a 100644
--- a/uwb/UWB-calibration.conf
+++ b/uwb/UWB-calibration-tw.conf
@@ -12,77 +12,77 @@
 [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.ant_delay=16414
+ant0.ch5.prf16.tx_power=0x47472347
 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.prf16.pg_delay=0x34
+ant0.ch5.prf64.ant_delay=16414
+ant0.ch5.prf64.tx_power=0x47472347
 ant0.ch5.prf64.pg_count=0
-ant0.ch5.prf64.pg_delay=0x26
-ant0.ch9.prf16.ant_delay=16410
-ant0.ch9.prf16.tx_power=0x56565656
+ant0.ch5.prf64.pg_delay=0x34
+ant0.ch9.prf16.ant_delay=16426
+ant0.ch9.prf16.tx_power=0x47472347
 ant0.ch9.prf16.pg_count=0
-ant0.ch9.prf16.pg_delay=0x26
-ant0.ch9.prf64.ant_delay=16410
-ant0.ch9.prf64.tx_power=0x56565656
+ant0.ch9.prf16.pg_delay=0x34
+ant0.ch9.prf64.ant_delay=16426
+ant0.ch9.prf64.tx_power=0x47472347
 ant0.ch9.prf64.pg_count=0
-ant0.ch9.prf64.pg_delay=0x26
+ant0.ch9.prf64.pg_delay=0x34
 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.ant_delay=16446
+ant1.ch5.prf16.tx_power=0x5B5B2B5B
 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.prf16.pg_delay=0x20
+ant1.ch5.prf64.ant_delay=16446
+ant1.ch5.prf64.tx_power=0x5B5B2B5B
 ant1.ch5.prf64.pg_count=0
-ant1.ch5.prf64.pg_delay=0x26
-ant1.ch9.prf16.ant_delay=16410
-ant1.ch9.prf16.tx_power=0x56565656
+ant1.ch5.prf64.pg_delay=0x20
+ant1.ch9.prf16.ant_delay=16429
+ant1.ch9.prf16.tx_power=0
 ant1.ch9.prf16.pg_count=0
-ant1.ch9.prf16.pg_delay=0x26
-ant1.ch9.prf64.ant_delay=16410
-ant1.ch9.prf64.tx_power=0x56565656
+ant1.ch9.prf16.pg_delay=0
+ant1.ch9.prf64.ant_delay=16429
+ant1.ch9.prf64.tx_power=0
 ant1.ch9.prf64.pg_count=0
-ant1.ch9.prf64.pg_delay=0x26
+ant1.ch9.prf64.pg_delay=0
 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.ant_delay=16446
+ant2.ch5.prf16.tx_power=0
 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.prf16.pg_delay=0
+ant2.ch5.prf64.ant_delay=16446
+ant2.ch5.prf64.tx_power=0
 ant2.ch5.prf64.pg_count=0
-ant2.ch5.prf64.pg_delay=0x26
-ant2.ch9.prf16.ant_delay=16410
-ant2.ch9.prf16.tx_power=0x56565656
+ant2.ch5.prf64.pg_delay=0
+ant2.ch9.prf16.ant_delay=16429
+ant2.ch9.prf16.tx_power=0x5F5F2F5F
 ant2.ch9.prf16.pg_count=0
 ant2.ch9.prf16.pg_delay=0x26
-ant2.ch9.prf64.ant_delay=16410
-ant2.ch9.prf64.tx_power=0x56565656
+ant2.ch9.prf64.ant_delay=16429
+ant2.ch9.prf64.tx_power=0x5F5F2F5F
 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.ant_delay=16446
+ant3.ch5.prf16.tx_power=0
 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.prf16.pg_delay=0
+ant3.ch5.prf64.ant_delay=16446
+ant3.ch5.prf64.tx_power=0
 ant3.ch5.prf64.pg_count=0
-ant3.ch5.prf64.pg_delay=0x26
-ant3.ch9.prf16.ant_delay=16410
-ant3.ch9.prf16.tx_power=0x56565656
+ant3.ch5.prf64.pg_delay=0
+ant3.ch9.prf16.ant_delay=16429
+ant3.ch9.prf16.tx_power=0x5F5F2F5F
 ant3.ch9.prf16.pg_count=0
 ant3.ch9.prf16.pg_delay=0x26
-ant3.ch9.prf64.ant_delay=16410
-ant3.ch9.prf64.tx_power=0x56565656
+ant3.ch9.prf64.ant_delay=16429
+ant3.ch9.prf64.tx_power=0x5F5F2F5F
 ant3.ch9.prf64.pg_count=0
 ant3.ch9.prf64.pg_delay=0x26
 ant3.port=1
@@ -108,16 +108,16 @@
 temperature_reference=85
 smart_tx_power=1
 auto_sleep_margin=20000
-restricted_channels=0
+restricted_channels=0x20
 [HAL]aoa_capability=1
 [HAL]ant_sets.ch5.range.rx_ant_set_nonranging = 6
 [HAL]ant_sets.ch5.range.rx_ant_set_ranging = 6
 [HAL]ant_sets.ch5.range.tx_ant_set_nonranging = 6
 [HAL]ant_sets.ch5.range.tx_ant_set_ranging = 6
-[HAL]ant_sets.ch5.azimuth.rx_ant_set_nonranging = 6
+[HAL]ant_sets.ch5.azimuth.rx_ant_set_nonranging = 4
 [HAL]ant_sets.ch5.azimuth.rx_ant_set_ranging = 4
-[HAL]ant_sets.ch5.azimuth.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch5.azimuth.tx_ant_set_ranging = 0
+[HAL]ant_sets.ch5.azimuth.tx_ant_set_nonranging = 4
+[HAL]ant_sets.ch5.azimuth.tx_ant_set_ranging = 4
 [HAL]ant_sets.ch9.range.rx_ant_set_nonranging = 6
 [HAL]ant_sets.ch9.range.rx_ant_set_ranging = 6
 [HAL]ant_sets.ch9.range.tx_ant_set_nonranging = 6
@@ -130,11 +130,11 @@
 [HAL]ant_sets.ch9.elevation.rx_ant_set_ranging = 1
 [HAL]ant_sets.ch9.elevation.tx_ant_set_nonranging = 0
 [HAL]ant_sets.ch9.elevation.tx_ant_set_ranging = 0
-[HAL]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 6
+[HAL]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 4
 [HAL]ant_sets.ch9.azimuth.rx_ant_set_ranging = 4
-[HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 0
-[HAL]minimum_system_offset_uwbtime0=500
+[HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 8
+[HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 8
+[HAL]minimum_system_offset_uwbtime0=120
 coex_gpio=4
 coex_delay_us=1000
 coex_margin_us=500
diff --git a/uwb/country_conf_gen.sh b/uwb/country_conf_gen.sh
new file mode 100755
index 0000000..7e398c0
--- /dev/null
+++ b/uwb/country_conf_gen.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+# This script is used to generate uwb conuntry configuration file,
+# and the PRODUCT_COPY_FILES list in uwb.mk based on uwb_country.conf
+# Bug: 196073172, 233619860
+
+count=1
+
+mkdir -p $2
+
+while read line ; do
+    if [[ "$line" =~ ^"*" ]]; then
+        header=${line:1}
+    elif [[ "$line" =~ ^"\"" ]]; then
+        #line=$(echo ${line/,} | tr -d "\"")
+        country[count]=$(echo $line | cut -d ':' -f1 | tr -d "\"")
+        code[count]=$(echo $line | cut -d ':' -f2 | tr -d "\"" | tr -d " ")
+            if [ "$header" = "FCC" ]; then
+                cp $1/UWB-calibration-fcc.conf $2/UWB-calibration-${code[$count]}.conf
+            elif [ "$header" = "CE" ]; then
+                cp $1/UWB-calibration-ce.conf $2/UWB-calibration-${code[$count]}.conf
+            elif [ "$header" = "JP" ]; then
+                cp $1/UWB-calibration-jp.conf $2/UWB-calibration-${code[$count]}.conf
+            elif [ "$header" = "TW" ]; then
+                cp $1/UWB-calibration-tw.conf $2/UWB-calibration-${code[$count]}.conf
+            elif [ "$header" = "Restricted" ]; then
+                cp $1/UWB-calibration-restricted.conf $2/UWB-calibration-${code[$count]}.conf
+            fi
+    fi
+((count++))
+done < $1/uwb_country.conf
diff --git a/uwb/init.uwb.calib.xtal.sh b/uwb/init.uwb.calib.xtal.sh
new file mode 100644
index 0000000..1fcb876
--- /dev/null
+++ b/uwb/init.uwb.calib.xtal.sh
@@ -0,0 +1,26 @@
+#!/vendor/bin/sh
+# only use xtal_trim from factory calibration
+if [ -z "$2" ]
+then
+    echo "usage is $0 input-calibration output_calibration"
+    exit 0
+fi
+OUTPUT_CALIB="$2"
+if [ ! -f "$OUTPUT_CALIB" ]; then
+    touch $OUTPUT_CALIB
+    chmod 0644 $OUTPUT_CALIB
+    file="$1"
+    while IFS=, read -r f1 f2
+    do
+        case $f1 in
+            "UWB_cal_tx_xtal_reg_final_value")
+                if [ $((0x$f2)) -gt 63 ]; then
+                    f2=63
+                fi
+                echo 'xtal_trim=0x'$f2 >> $OUTPUT_CALIB
+                ;;
+        esac
+    done <"$file"
+    exit 0
+fi
+
diff --git a/uwb/uwb_calibration.mk b/uwb/uwb_calibration.mk
index e29bea2..3889a08 100644
--- a/uwb/uwb_calibration.mk
+++ b/uwb/uwb_calibration.mk
@@ -13,9 +13,16 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+# UWB - ultra wide band
+$(call inherit-product-if-exists, vendor/qorvo/uwb/uwb.mk)
+
 LOCAL_UWB_CAL_DIR=device/google/raviole/uwb
 
 PRODUCT_COPY_FILES += \
-    $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/uwb/UWB-calibration.conf \
-    $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/uwb/UWB-calibration-unknown.conf \
-    $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/uwb/UWB-calibration-default.conf \
+    $(LOCAL_UWB_CAL_DIR)/UWB-calibration-restricted.conf:$(TARGET_COPY_OUT_VENDOR)/etc/uwb/UWB-calibration-unknown.conf \
+    $(LOCAL_UWB_CAL_DIR)/UWB-calibration-default.conf:$(TARGET_COPY_OUT_VENDOR)/etc/uwb/UWB-calibration-default.conf \
+    $(LOCAL_UWB_CAL_DIR)/UWB-calibration-default.conf:$(TARGET_COPY_OUT_VENDOR)/etc/uwb/UWB-calibration.conf \
+    $(LOCAL_UWB_CAL_DIR)/init.uwb.calib.xtal.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.uwb.calib.sh \
+
+PRODUCT_COPY_FILES += \
+    frameworks/native/data/etc/android.hardware.uwb.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.uwb.xml
diff --git a/uwb/uwb_country.conf b/uwb/uwb_country.conf
new file mode 100644
index 0000000..93a5e2e
--- /dev/null
+++ b/uwb/uwb_country.conf
@@ -0,0 +1,62 @@
+*FCC
+"United States": "us"
+"Canada": "ca"
+
+*CE
+"Austria": "at"
+"Belgium": "be"
+"Bulgaria": "bg"
+"Croatia": "hr"
+"Cyprus": "cy"
+"Czech Republic": "cz"
+"Denmark": "dk"
+"Estonia": "ee"
+"Finland": "fi"
+"France": "fr"
+"Germany": "de"
+"Greece": "gr"
+"Hungary": "hu"
+"Ireland Republic of (EIRE)": "ie"
+"Italy": "it"
+"Latvia": "lv"
+"Lithuania": "lt"
+"Luxembourg": "lu"
+"Malta": "mt"
+"Netherlands": "nl"
+"Poland": "pl"
+"Portugal": "pt"
+"Romania": "ro"
+"Slovakia": "sk"
+"Slovenia": "si"
+"Spain": "es"
+"Sweden": "se"
+"United Kingdom (Great Britain)": "gb"
+"Northern Ireland": "ni"
+"Iceland": "is"
+"Liechtenstein": "li"
+"Norway": "no"
+"Switzerland": "ch"
+
+*JP
+"Japan": "jp"
+
+*TW
+"Taiwan": "tw"
+
+*Restricted
+"Argentina": "ar"
+"Armenia": "am"
+"Azerbaijan": "az"
+"Belarus": "by"
+"Indonesia": "id"
+"Kazakhstan": "kz"
+"Kyrgyzstan": "kg"
+"Nepal": "np"
+"Pakistan": "pk"
+"Paraguay": "py"
+"Russia": "ru"
+"Solomon Islands": "sb"
+"Tajikistan": "tj"
+"Turkmenistanr": "tm"
+"Ukraine": "ua"
+"Uzbekistan": "uz"